Exemples de ligne de commande dans l'interpréteur et construction de scripts en langage python

saisie Mémento aide

Cette page contient des titres, que vous pouvez parcourir, avec Jaws, grâce au raccourci "insert+F6" puis "flèche bas".

Si vous consultez cette page pour la première fois, allez directement au titre "Comment travailler..." Sinon, vous pouvez aussi aller directement aux exercices de votre choix, en utilisant les liens sur la même page suivants :

Liens avec les exercices sur la même page

Exercice 1 : l'instruction import et l'instruction from

Exercice 2 : le calcul numérique

Exercice 3 : le traitement des chaînes de caractères et le module string

Exercice 4 : les instructions if...elif...else, for et while

Exercice 5 : quelques scripts pour la saisie et pour la lecture sonore

L'interpréteur python

Vous allez écrire du code dans l'éditeur python. L'interpréteur de commande est intéressant pour apprendre les instruction du langage, car celles-ci sont exécutées dès que l'on appuie sur la touche "entrée". Le débugger de python donne directement des renseignements sur les erreurs. On dispose aussi de la fonction help() qui renseigne sur les modules, les mot-clefs...

On entre dans l'éditeur de lignes de commande de l'interpréteur, par la commande c:\python24\python.exe [fichier.py]

(Dans l'écriture ci-dessus, une expression entre crochets, signifie, d'une manière usuelle, que le paramètre est optionnel)

Quand on indique un nom de fichier .py qui contient un script écrit en langage python, la commande python.exe l'exécute, puis quitte l'interpréteur. Quand on lance la commande python.exe sans paramètre, on entre dans l'éditeur de lignes de commande. On peut aussi utiliser l'item "python command line" du sous-menu "python24" du menu "programme"

N'oubliez pas que l'on quittera l'interpréteur par "ctrl+z" puis "entrée"

Pour vous faciliter l'exécution de l'interpréteur, vous pouvez activer le lien ci-dessous :

commande c:\python24\python.exe (que vous quitterez par "ctrl+z" puis "entrée"

Voici le lien pour la version 2.5 de python :

commande c:\python25\python.exe pour la version 2.5 (que vous quitterez par "ctrl+z" puis "entrée"

Vous pouvez aussi entrer les commandes dans le champ d'édition de l'item "exécuter" du menu "programme", ou à l'invite de DOS.

Exécution d'un script .py avec les versions 2.4 et 2.5 de python

Pour apprendre à construire des scripts, je vous donnerai des exemples de fichiers .py, que vous pourrez lire et exécuter (si vous avez installé une version de python (la version 2.4 ou 2.5 par exemple)

Pour cela vous copierez le script dans le répertoire c:\python24, par exemple, et vous exécuterez la commande c:\python24\python script.py si script.py est le nom du script. A titre d'exemple, voici le script liremath.py, qui lit une formule à haute voix :

Lisez le script liremath.py

Si vous avez jeté un coup d'oeil sur le fichier liremath.py, vous aurez vu des instructions comme "import", "print", "for", "while"... Pour apprendre progressivement la signification de ces instruction, vous ferez les exercices sur cette même page, en entrant dans l'interpréteur de ligne de commandes.

Les exemples de cette page utilisent des ressources sonores, que vous devez télécharger, si vous voulez exécuter les scripts qui les utilisent. Le lien ci-dessous vous permet de faire le téléchargement des outils sonores de studyvox :

Lien externe : téléchargement des outils sonores de studyvox

Si vous avez installé les outils sonores de studyvox, vous copierez liremath.py comme il a été dit. Vous pourrez alors l'exécuter grâce à la commande python (ou en entrant simplement son nom car les fichiers de suffixe .py sont associés à python.exe) Voici un lien pour tester votre installation de python24 et de studyvox :

test d'exécution pour la version 2.4, avec la procédure pythontest.bat

Si vous avez installé la version python 2.5, vous copierez les scripts .py dans c:\python25 (au lieu de c:\python24) Ensuite, vous utiliserez les liens d'exécution avec cette version 25 :

test d'exécution, pour la version 2.5 avec la procédure pythontest25.bat

Comment travailler les exercices de cette page

Vous pouvez utiliser le lien "saisir", dans lequel vous taperez les mots clefs du langage, que je vous signale (entre guillemets) dans les exercices. J'ai placé dans les dictionnaires python.txt et pythonaide.txt de ce cours, des explications sommaires sur les instructions principales du langage. Vous pouvez copier et coller ces mots clefs (sans les guillemets) dans la fenêtre d'édition du lien "saisie" Si vous êtes aveugle, vous pouvez réaliser cette opération sans la souris, avec des raccourcis comme ci-dessous.

placez vous au début d'une donnée avec les flèches de direction, puis quand Jaws vous lit une donnée que vous désirez saisir, faites les raccourcis suivants : "maj+flèche droite"... pour sélectionner le caractère courant...puis "ctrl+c" pour copier les caractères sélectionnés dans le presse-papier, puis"ctrl+page up" pour revenir en haut de la page, puis "tab" puis "entrée" pour ouvrir le lien "saisie", puis "entrée" pour activer le champ d'édition (si vous avez Jaws) "ctrl+v" puis "entrée", pour coller le contenu du presse-papier dans le champ d'édition. Ces actions auront permis de saisir la ligne de donnée, sans avoir besoin de la taper, et vous pourrez, s'il y a lieu, lire le résultat courant, avec la commande mmathweb0. En effet, vous vous retrouverez dans la page résultat, dans laquelle se trouve en plus du résultat courant, des liens avec des exécutables comme mathweb0... Le lien "exécuter le résultat courant..." donne parfois l'exécution du résultat précédent, et dans ce cas, vous l'activerez une nouvelle fois, pour exécuter le résultat courant.

Dans le texte, vous trouverez des lignes de données, qui commencent par un symbole spécial, comme #, :, $, ou £... Vous pouvez changer ce symbole par un autre, pour vous aider dans votre étude. En plus des données que vous saisirez par le mécanisme du copier/coller, vous pourrez, bien sûr, taper des données de votre choix. Vous reviendrez dans cette page en faisant une ou plusieurs fois, le raccourci "alt+flèche gauche"

Exercices avec les nombres, les chaînes de caractère, les interruptions et les tests

Exercice 1 : les instruction import et from

Voici quelques instructions tapées dans l'environnement de ligne de commande de python, avec les messages du debugger : Pour pouvoir disposer des fonctions et des méthodes d'un module, il faut importer tout ou seulement une partie du module. On utilise pour cela l'instruction "from module import ..." Par exemple, pour pouvoir disposer des fonctions mathématiques du langage C, on écrira :

>>>from math import *

Vous utiliserez l'instruction help() pour entrer dans l'aide de l'environnement de ligne de commande, puis vous taperez le mot math. Vous obtiendrez alors la description des fonctions du module "math". Elle se présentera sous la forme :

Help on built-in module math:

NAME

math

FILE

(built-in)

DESCRIPTION

This module is always available. It provides access to the mathematical functions defined by the C standard.

FUNCTIONS

acos(...) acos(x) Return the arc cosine (measured in radians) of x. ...

Pour plus de détails, vous pouvez consulter le manuel, mais cette aide de l'environnement vous évite de le quitter et elle est souvent suffisante.

Exercice 2 : le calcul numérique

La syntaxe du langage python est très pratique pour les calculs. Il n'est pas obligatoire d'utiliser de parenthèses, mais il faut respecter la priorité des opérateurs.

Attention : quand il n'y a que des entiers dans des opérations, les calculs sont faits dans l'ensemble des entiers. Pour effectuer un calcul décimal, il faut qu'au moins un nombre soit un décimal

Exemple :

>>>1+2*3/4 1

>>>1.+2*3/4 2.5

Si vous voulez faire un calcul avec une fonction du module "math", vous devez commencer par l'importer :

>>>from math import cos

cos(0) 1.0

Pour faire des calculs en précision arbitraire, vous devez importer le module "decimal" :

>>>from decimal import *

>>> Decimal("12.34") + Decimal("3.87") - Decimal("18.41")

Decimal("-2.20")

>>> dig = Decimal(1)

>>> print dig / Decimal(3) 0.333333333

>>>getcontext().prec = 18

>>>print dig / Decimal(3) 0.333333333333333333

>>>print dig.sqrt() 1

>>>print Decimal(3).sqrt() 1.73205080756887729

La fonction eval(chaîne) est intéressante pour faire du calcul numérique d'expressions formelles contenues dans une chaîne. Voici un petit exemple de ce que l'on peut faire :

>>> from math import *

>>> x = cos(3.14)

>>> y = sin(3+.14)

>>> if x.isdigit() and y.isdigit():

...

>>> eval('2*(x+3*y)**2') 1.9809287739341701

Exercice 3 : le traitement des chaînes de caractères

Voici quelques instructions pour vous familiariser avec les chaînes de caractères.

>>> phr = 'bonjour monsieur'

>>> phr[1] 'o'

>>> phr[:3] 'bon'

>>>phr[3:] 'jour monsieur'

Vous aurez remarqué que l'indice du premier caractère de la chaîne est l'indice 0 (comme c'est souvent le cas en programmation, pour le premier indice d'un tableau)

Il existe de nombreuses (built in) fonctions et méthodes, qui facilitent le traitement des objets du type "str. Les fonction de transtypage int(...) str(...)... sont très utiles.

Pour modifier une chaîne, on ne peut pas le faire directement. On utilise les chaînes (ou les valeurs) renvoyées par les méthodes de la classe str. Par exemple :

>>> phr.find("m") 8

>>> phr.replace('jour', 'soir') 'bonsoir monsieur'

>>> phr.split() ['bonjour', 'monsieur']

La méthode split, appelée sans paramètre, renvoie un tableau dont les éléments sont les mots de la chaîne.

(On peut indiquer un séparateur autre que l'espace)

Vous utiliserez le manuel python pour d'autres méthodes, ou l'aide intégrée help(str) dans l'environnement. Retenez que vous ne pouvez pas modifier une chaîne sans la copier dans un objet du type str.

Exercice 4 : les instructions if elif else, for, while

La syntaxe de l'instruction if...elif...else...(si...ou si...sinon...) est :

if condition:

bloc d'instructions...

elif condition:

bloc d'instructions...

else:

bloc d'instructions...

Remarquez les indentations qui matérialisent les blocs d'instructions. Les instructions elif et else sont optionnelles. La syntaxe de l'instruction for ind in tableau (pour l'indice ind dans le tableau d'indice...) est :

for i in tab:

bloc d'instructions...

Pour l'instruction for, on utilise la fonction range(deb, fin, pas) qui renvoie un tableau d'indice qui va de "deb" jusqu'à "fin" avec le pas "pas" :

>>> for k in range(5, 50, 9):

...

print k,

...

5 14 23 32 41

La syntaxe de l'instruction while...est :

while condition:

bloc d'instructions

Exemples de scripts pour la lecture sonore de textes et de formules

Exercice 5 : quelques scripts pour la saisie et pour la lecture sonore

Vous pourrez exécuter tous les scripts de cet exercice, en les copiant dans le répertoire c:\python24 ou c:\python25, suivant la version que vous avez installée, puis vous utiliserez les liens associés pour leur exécution suivant les versions que vous avez installées. Comme ces exemples utilisent des .wav du répertoire c:\sv3, vous devez installer les outils sonores de studyvox (en utilisant le lien de téléchargement de cette page)

Commencez par lire, puis exécuter les scripts ci-dessous :

Lecture d'une formule qui peut contenir des nombres, des symboles, des mots clefs...

Lisez le script lirenombre.py : lecture sonore d'une formule

Exécuter le fichier lirenombre.py (pour la version 2.4)

Exécuter le fichier lirenombre.py (pour la version 2.5)

Lecture d'une phrase écrite en français

Lisez le script lirephr.py : lecture sonore d'une phrase en français

Exécuter le fichier lirephr.py (pour la version 2.4)

Exécuter le fichier lirephr.py pour la version 2.5

Lecture d'une phrase qui peut contenir des nombres et des symboles spéciaux

Lisez le script lire.py : lecture sonore d'une phrase en français

Exécuter le fichier lire.py (pour la version 2.4)

Exécuter le fichier lire.py (pour la version 2.5)

Lecture d'une phrase phonétique

Lisez le script lirepho.py : lecture sonore d'une phrase phonétique

Exécuter le fichier lirepho.py (pour la version 2.4)

Exécuter le fichier lirepho.py (pour la version 2.5)

Les exemples ci-dessus sont des scripts qui s'exécutent séquentiellement dans une console Windows (comme les .exe ou .bat pour DOS)

Une application intéressante, réalisée en langage python, est le logiciel "NVDA"de revue d'écran pour Windows (NonVisual Desktop Access) C'est un produit libre (entièrement gratuit) qui fonctionne avec la synthèse vocale sapi5 ("virginie" pour le français) Il n'a pas toutes les possibilités de Jaws, mais il est encore en développement, et son fonctionnement est déjà très satisfaisant.

Vous pouvez l'installer facilement pour Windows XP, en utilisant : Lien externe : installation du logiciel de revue d'écran NVDA de Michael Curren

Si vous avez expérimenté le logiciel NVDA pour Windows, vous aurez remarqué que l'on peut réaliser en langage python, des applications qui traitent les contrôles (button, listbox, menu...) Il est en effet possible d'utiliser le langage python, pour créer des applications pour Windows, avec des fenêtres d'édition, des menus et sous-menus... et ceci se fait bien plus facilement qu'avec le langage C++

C'est la programmation événementielle.

Vous pouvez créer des scripts pour le logiciel nvda, comme indiqué dans le lien :

Lien externe : Guide de développement des modules complémentaires pour NVDA

Vous trouverez des exemples de scripts dans la page suivante :

suivant : la programmation événementielle avec les modules Tkinter et wx du langage python

Retour dans le sommaire de ce cours sur le langage python

Retour dans la page sommaire de la rubrique langage