Pydroid 3 sur tablette Androïd, au Lycée

NB. 1) Ce qui suit ne s'aplique qu'aux tablettes Androïd. Si vous utilisez un iPad, je vous conseille sur l'App Store l'application Carnets (sous Jupyter), ou bien pour rester plus classique les applications Pyto ou Pythonista 3.
2) Si vous utilisez un ordinateur, la solution la plus simple pour installer Python consiste à utiliser l'éditeur IDLE, voir python.org. Ou bien Anaconda qui contient IDLE et Jupyter (lire le chap. 1 du livre PAA). Je vous déconseille d'installer les deux sur votre machine.

La tablette LENOVO

La Région Sud a fait le choix dans son projet d'équiper tous les lycéens d'une tablette Androïd LENOVO M10 FHD+ (2e Gen) (4/64 Go). Le site ATRIUM décrit le fonctionnement de la tablette.

Beaucoup d'entre vous utiliseront la tablette au lycée conjointement avec un ordinateur à la maison. Pour échanger des fichiers Python entre la tablette et l'ordinateur, vous pouvez déposer vos fichiers dans le nuage avec Google Drive. Ou bien utiliser un cable USB, consultez alors cette page Google.

Installation de l'application Pydroid 3

Téléchargez Python sur la tablette, en allant sur le Play Store qui est une application déjà installée. En entrant pydroid 3 dans la case de recherche, vous téléchargerez deux applications. En premier l'application pydroid 3, et ensuite l'application Pydroid Repository Plugin. Elles sont gratuites toutes les deux. N'installez pas Pydroid Pro qui utilise l'ancienne version Python 2 car vous allez travailler en Python 3.

Ceci fait, vous obtenez une nouvelle icône d'application sur votre tablette :

Utilisation de Pydroid 3

Lancez cette application, et vous arrivez directement dans l'éditeur de Pydroid dédié à la programmation en Python. Le clavier virtuel se trouve en bas. En haut, deux menus : Le premier à gauche avec ses trois couches horizontales sera nommé Hamburger, et celui de droite avec une image de dossier sera nommé Open, d'accord ? Il y a aussi un bouton jaune avec une flèche qui permet d'exécuter le programme. Au-dessus du clavier virtuel se trouve une ligne de touches bleues fréquemment utilisées en Python.

menu Hamburger        menu Open

Il est essentiel d'avoir un répertoire Python pour sauvegarder vos fichiers. Lorsque vous optez pour Terminal dans le menu Hamburger, vous arrivez dans un dossier /storage/emulated/0 dans lequel vous pouvez créer des dossiers personnels. Vous êtes dans un shell Unix (sans doute un Linux maison), dont il faut connaître le langage de commande, en fait juste une douzaine de commandes de base (ls, cd, mkdir, rmdir, mv,...) :

/storage/emulated/0 $ mkdir Python
/storage/emulated/0 $ ls
Alarms       Foo            Pictures       SUSdownload
Android      Movies         Podcasts
DCIM         Music          Python
Download     Notifications  Ringtones

Mais il y en a qui connaissent Linux :-) alors... c'est une première solution. Une autre solution qui fait l'impasse sur Unix consiste à rédiger un petit programme Python, histoire de voir si tout marche bien :

print('Hello le Monde !')    # un tout petit programme...

et de le sauvegarder par le menu Open/Save as. Vous touchez votre espace InternalStorage puis NEW FOLDER (nouveau dossier) et vous entrez le nom Python. Ensuite, vous confirmez SELECT FOLDER puis vous entrez le nom de votre petit fichier essai_python.py, et zou ! Par la suite vous pourrez ouvrir un fichier ou sauvegarder un fichier Python, toujours dans ce dossier Python.

Installer un module avec pip

Vous aurez un jour ou l'autre besoin d'installer un module Python supplémentaire, par exemple matplotlib qui est vital pour tracer facilement des courbes ou des suites numériques, en une poignée de lignes de code. Pour cela, il vous faudra utiliser Pip dans le menu Hamburger (Pydroïd se contente de faire appel à la commande Unix pip qui a été installée en même temps que Python).

NB. Un mot sur matplotlib. La majorité des tutoriaux utilisent le module numpy, réservé au post-Bac. Je vous propose dans ce Mémento de Première (pages 22-24) de faire l'impasse sur numpy, essentiellement invoqué pour sa fonction np.linspace. Ceci dit, limitez-vous à l'essentiel, par exemple avec cette introduction parmi d'autres.

La méthode de travail

Vous allez rédiger des programmes Python, formés de fonctions définies avec def et d'instructions utilisant ces fonctions, notamment print pour afficher le résultat d'une fonction. Si elle n'a pas de résultat, lancez directement la fonction.

Mode Play. Il s'agit du bouton jaune. Lorsque vous optez pour ce choix, votre programme est exécuté, et vous verrez les affichages dans une fenêtre noire qui n'accepte pas de frappe au clavier. Il est donc essentiel de prévoir les tests à l'intérieur du fichier. C'est le mode le plus simple.

Mode Interpreter. Un peu plus geek, vous tombez directement dans un shell Python (le toplevel). Votre programme n'a pas été exécuté, il faut le demander : changez de répertoire, puis importez votre programme qui est aussi un module :

Python 3.8.3 (default, May 27 2020, 02:08:17)
[GCC 9.23.0] on linux
Type "help" for more information
>>> import os             # les fonctions du système de fichiers [PAA p.98]
>>> os.chdir('Python')    # pour descendre dans votre répertoire Python (cd en Unix)
>>> import essai_python
Hello le Monde !

La directive import exécute votre fichier et importe la variable essai_python. Si le fichier contenait une fonction f, elle serait accessible sous la forme essai_python.f, c'est un peu lourd. Mais vous savez que vous auriez pu aussi demander from essai_python import f et la fonction f sera utilisable au toplevel Python, votre fichier étant quand même entièrement exécuté.

Mode Terminal. Carrément geek, vous voulez tombez sur un shell Unix, why not ? Il faut changer de répertoire, lancer Python, puis importer votre fichier :

/storage/emulated/0 $$ cd Python
/storage/emulated/0/Python $$ python
Python 3.8.3 (default, May 27 2020, 02:08:17)
[GCC 9.23.0] on linux
Type "help" for more information
>>> import essai_python              # ou from ... import ...
Hello le Monde !
>>> quit()

'quit' seems to be the right word, happy coding !