Projet 1
Avant d'entrer dans le vif du sujet (le projet), il est nécessaire d'étudier quelques élément
ssupplémentaires.
1) la fonction input
la fonction input va permettre aux utilisateurs de saisir des données au clavier.
projet 1.1
Testez ce programme à l'aide de Spyder :
age=input("Quel est votre âge ? ")
Quel est là valeur de la variable age après avoir exécuté le programme ci-dessus (utilisez la
console pour répondre à cette question) ? Quel est le type de la variable age ?
Comme vous avez pu le constater, la valeur saisie par l'utilisateur sera toujours de type "string".
projet 1.2
Testez ce programme à l'aide de Spyder :
a=input("Entrez un nombre")
a=a+1
Comme vous l'avez remarqué, nous avons une erreur puisque la valeur référencée par la
variable a est de type string, la ligne "a=a+1" puisque nous avons un entier avec 1 et une chaîne
de caractères avec la variable a, séparés par un signe +, (le signe + correspond à une
concaténation ou à une addition ?) Python n'est pas capable de gérer le problème, nous avons
donc une erreur.
Pour éviter ce genre de problème, il peut être nécessaire de "transformer" notre chaîne de
caractères en entier :
projet 1.3
Testez ce programme à l'aide de Spyder :
1/5
a=input("Entrez un nombre")
a=int(a)
a=a+1
2) Écrire et lire dans un 6chier externe
Il est possible de lire ou d'écrire des données dans un Tchier extérieur.
La première des choses à faire est d'ouvrir notre Tchier texte. Pour ce faire nous utiliserons la
méthode open.
with open('nomDuFichier', 'r') as f :
Nous utilisons ici une structure particulière que nous n'avons encore jamais rencontrée : le
"with". Ce "with" indique que nous allons utiliser un "context manager". Cette notion de "context
manager" n'est pas au programme de NSI, nous n'allons donc pas l'étudier en tant que tel. Vous
avez juste besoin de savoir que son utilisation permet de manipuler des Tchiers externes
"proprement".
La méthode open prend 2 paramètres : le nom du Tchier et le mode d'ouverture du Tchier :
Il existe 3 modes d'ouverture :
!"'r ' : ouverture en lecture
!"'w' : ouverture en écriture. Le contenu du Tchier est écrasé. Si le Tchier n'existe pas, il est
créé.
!"'a' : ouverture en écriture en mode ajout. On écrit à la Tn du Tchier sans écraser l'ancien
contenu du Tchier. Si le Tchier n'existe pas, il est créé.
Une fois le Tchier ouvert, il est possible d'écrire dedans (à l'aide de write) ou de lire son contenu
(à l'aide de read).
projet 1.4
Étudiez et testez le programme suivant :
nom=input('Entrez un mot')
with open('[Link]','a') as f :
[Link](nom)
Le répertoire courant devrait maintenant contenir aussi un Tchier -[Link]. Ouvrez ce Tchier
(avec un éditeur de texte) et vériTez qu'il contient bien le mot entré par l'utilisateur.
2/5
projet 1.5
Étudiez et testez le programme suivant :
with open('[Link]','r') as f :
ligne=[Link]()
Quelle va être la valeur de la variable ligne après l'exécution de ce programme ? VériTez votre
réponse.
projet 1.6
Écrivez un programme permettant à l'utilisateur de sauvegarder 5 noms dans un Tchier texte
(-[Link])
VériTez que votre programme est correct en ouvrant le Tchier -[Link] à l'aide d'un éditeur de
texte.
Votre Tchier texte devrait être illisible (les mots s'enchaînent sans aucun espace ou saut à la
ligne). Il est tout à fait possible de "forcer" le saut de ligne en utilisant la suite de caractères
suivante: \n (l'enchaînement des caractères \ et n entraîne un "retour chariot"). L'instruction
suivante :
print('hello \n world')
n'a`che pas :
hello \n world
mais :
hello
world
Nous avons bien un saut de ligne (un "retour chariot"). Le caractère \n n'est pas a`ché.
projet 1.7
ModiTer votre programme du "1.6" aTn d'avoir un nom par ligne dans le Tchier texte (-[Link])
projet 1.8
Voici un programme permettant de lire le Tchier texte et de ranger les différents noms entrés
par l'utilisateur dans une liste, testez ce programme :
3/5
noms=[]
with open('[Link]','r') as f :
for ligne in f:
ligne=[Link]("\n","")
[Link](ligne)
NB : la ligne ligne=[Link]("\n","") permet d'enlever la suite de caractères \n, car même si \n
n'est pas visible dans le Tchier texte, elle est tout de même présente.
3) Projet
En utilisant les connaissances acquises jusqu'à présent, vous allez écrire un programme de
gestion de répertoire téléphonique.
projet 1.9
Ce programme devra proposer le menu suivant à l'utilisateur :
0-quitter
1-écrire dans le répertoire
2-rechercher dans le répertoire
Votre choix ?
Si le choix est 0 : Le programme sera stoppé.
Si le choix est 1 :
L'utilisateur devra saisir un nom ou 0 s'il veut terminer la saisie (" Nom (0 pour terminer) : ") :
!"L'utilisateur entre 0 => le programme devra le renvoyer vers le menu
!"L'utilisateur entre un nom => le programme devra lui demander de saisir le numéro de
téléphone correspondant au nom. Une fois le numéro saisi, le programme devra lui
proposer d'entrer un nouveau nom (ou 0 pour terminer)...
exemple de saisie d'un utilisateur (toto) :
4/5
Si le choix est 2 :
L'utilisateur devra saisir le nom recherché ("Entrer un nom :").
!"Si le nom recherché est présent dans le répertoire, le programme devra a`cher " Le
numéro recherché est : " suivi du numéro de téléphone correspondant au nom saisi.
!"Si le nom recherché est absent du répertoire, le programme devra a`cher " Inconnu ".
L'utilisateur est ensuite redirigé vers le menu principal.
recherche des utilisateurs (toto et titi) :
Voici une démonstration en vidéo : [Link]
Les noms et numéros de téléphone devront être stockés dans un Tchier texte.
Votre programme devra être composé au minimum de 3 fonctions : une fonction menu, une
fonction lecture et une fonction ecriture. N'oubliez pas de commenter votre programme et de
proposer une documentation pour vos fonctions.
5/5