M1 Python - Corrigé du TD 1

Il fallait vraiment tester les instructions proposées une à une dans l'interpréteur, et ne surtout pas écrire un programme dans un IDE.

Le notebook jupyter permet à la fois d'utiliser l'interpréteur, d'exécuter des programmes, et de rentrer du texte formaté en markdown. Il est donc idéal pour présenter des comptes rendus de TP.

On commence par une révision rapide de la syntaxe de base.

Exercice 1

Les premiers exemples du TD rappellent l'existence de + et * pour les chaînes.

Exercice 2

dir("") permet de découvrir la méthode "center" ...

Exercice 3

... et aussi la méthode strip :

Listes ou tableaux

Exercice 4

On s'autorise une instruction pour déterminer la longueur m de la plus courte ...

Exercice 5:

Ensuite, on peut récuperer les caractères d'indices pairs ou impairs :

Exercice 6

Exercice 7:

On commence par écrire une fonction qui cherche un mot dans le dictionnaire.

Le dictionnaire est codé en latin1, il faut donc le passer en paramètre à la fonction open.

On peut itérer sur un fichier ouvert, il est vu comme une liste de lignes (qui se terminent donc par \n.

Plutôt que de supprimer le \n sur chaque ligne, il vaut mieux le rajouter au mot cherché.

On peut aussi utiliser un context manager (pour éviter d'oublier de refermer le fichier) :

Une fois au point, on l'incorpore dans un script (minimaliste).

#! /usr/bin/env python

import sys

def dico(w):
   with open('liste.de.mots.francais.frgut.txt',encoding='latin1') as f:
       if w+'\n' in f: print ("%s est dans le dictionnaire" % w)
       else: print ("%s n'est pas dans le dictionnaire" % w)


if __name__ == '__main__': # cette clause permet d'utiliser le script comme module, les instructions
    if len(sys.argv) < 2:  # qui suivent ne seront exécutées que si le script est le programme principal
        print ("dic prend au moins un argument")
        sys.exit(1)
    else:
        for w in sys.argv[1:]: dico(w)

Résultat :

[jyt@scriabine M1]$ ./dico.py luke je suis ton père
luke n'est pas dans le dictionnaire
je est dans le dictionnaire
suis est dans le dictionnaire
ton est dans le dictionnaire
père est dans le dictionnaire