Correction pendu version Marchant – sera présenté mercredi :
- avec une liste de listes pour le dessin (piqué à Grégouze le boss),
- avec une « saisie blindée » de caractères,
def saisie_blindee_caractere(texte_a_afficher): saisie = input(texte_a_afficher) while True : if len(saisie) == 1 and ('a' <= saisie <= 'z' or 'A' <= saisie <= 'Z'): return saisie.upper() # en majuscule elif saisie in ['é', 'è', 'ê']: return 'E' print("Vous n'avez pas saisi un caractère valide") saisie = input(texte_a_afficher) # lettre = saisie_blindee_caractere("Saisis une lettre : ") # print("Tu as saisi", lettre)
- avec un fichier de mots
"liste_mots_maj.txt"
dans le même dossier : comment lire un fichier ?from random import choice def choix_mot(): # ouverture du fichier with open("liste_mots_maj.txt", 'r') as f: # 'r' comme "read" car ouvert en lecture # on lit tout et le met dans un texte : contenu contenu = f.read() # on separe en lignes avec le '\n' comme separateur # la methode .split() renvoie une liste liste = contenu.split(sep = '\n') # initialisation liste vide liste_acceptee = [] # on parcourt la liste et on prend si > 3 caracteres for mot in liste : if len(mot) > 3: liste_acceptee.append(mot) # fermeture du fichier f.close() reponse = choice(liste_acceptee) return reponse
et pour le carnet d’adresse ?
- saisie « blindée » d’un âge ?
def saisie_age_entier(texte): """saisie d'un âge entier en gérant les erreurs de saisie""" while True: # boucle "infinie", on n'en sort qu'avec break nbre = input(texte) # On tente la conversion en entier try: nbre = int(nbre) except ValueError: # si la conversion n'a pas fonctionne print("Vous n'avez pas saisi de nombre entier") continue # retour dans la boucle if 0 < nbre < 123 : # pas plus que Jeanne Calment break # ok : sortie de boucle else : print(nbre, "ne correspond pas à un âge valide") return nbre
- écrire un fichier
csv
pour l’enregistrer et lire un fichiercsv
:
un fichier.csv
est un fichier texte où les lignes représentent des champs ou colonnes séparées par des points-virgules';'
. Exemple decontact.csv
:Pierre;42;06.07.08.09.10;3 allee des bois LILLE Marie;37;06.10.09.08.07;42 rue des fraises STRASBOURG John Malkovich;65;01.02.03.04.05;HOLLYWOOD
Essayer d’implémenter la lecture du csv au départ du programme dans notre carnet d’adresses d’ici mercredi !
Bonjour, comment peut on ajouter le nouveau contact dans le document .txt tout en gardant les précédents ?
A chaque nouveau contact, il écrase tout les précédents…
Merci d’avance
Bonjour !
Je te suggère d’enregistrer non pas un contact mais toute la liste !
Bon courage !