Problème de boucle for
Résolu
spoiledog
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Bonjour,
Je voudrais créer une liste de dictionnaire de la forme:
compositeurs = [ f'comp' :'Mozart', 'a naiss' :1756, 'a mort' :1791g,f'comp' :'Beethoven', "a naiss' :1770, ...g, f'Haendel' : ... g, ... ]
Je pense que j'ai un problème de boucle for au niveau de la méthode append (ça traite seulement le dernier enregistrement fait par l'utilisateur).
Je vous remercie d'avance pour votre aide.
Bonjour,
Je voudrais créer une liste de dictionnaire de la forme:
compositeurs = [ f'comp' :'Mozart', 'a naiss' :1756, 'a mort' :1791g,f'comp' :'Beethoven', "a naiss' :1770, ...g, f'Haendel' : ... g, ... ]
Je pense que j'ai un problème de boucle for au niveau de la méthode append (ça traite seulement le dernier enregistrement fait par l'utilisateur).
Je vous remercie d'avance pour votre aide.
print("Bienvenu!!") try: nc = int(input("Combien de compositeurs voulez vous saisir?: ")) compositeurs = {} dic_nom_comp = {} dic_a_naiss = {} dic_a_mort = {} liste_comp = [] for i in range(nc): lib_c = 'comp' nom_comp = input("Donner le nom du compositeur: ") dic_nom_comp[lib_c] = nom_comp lib_an = 'a_naiss' a_naiss = int(input("Donner l'année de naissance du compositeur: ")) dic_a_naiss[lib_an] = a_naiss lib_am = 'a_mort' a_mort = int(input("Donner l'année de décès du compositeur: ")) dic_a_mort[lib_am] = a_mort for j in (dic_nom_comp, dic_a_naiss, dic_a_mort): compositeurs.update(j) liste_comp.append(compositeurs) print(liste_comp) except ValueError: print("Veuillez vérifier votre saisie!")
A voir également:
- Le fichier contient un programme écrit en python.le programme construit un mot secret mais il ne l'affiche pas.modifiez ce programme afin que à chaque itération de la boucle :la variable a augmente de 2la variable b diminue de 1ajoutez une instruction pour faire afficher le mot secret construit.quel est ce mot secret ?
- Le fichier à télécharger comporte plusieurs calques. l’un d’eux contient un mot caché. quel est ce mot ? - Forum Téléchargement
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur freebox ✓ - Forum Freebox
- Un document .docx est, en réalité, composé de plusieurs fichiers. dans le fichier à télécharger, trouvez le fichier secret. quel mot contient-il ? ✓ - Forum Windows
7 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
commence peut-être par un programme plus simple, sans boucle et sans input, qui crée un dictionnaire.
commence peut-être par un programme plus simple, sans boucle et sans input, qui crée un dictionnaire.
Bonjour spoiledog,
Il faut savoir que dans un dictionnaire, les clés sont uniques
donc on ne peut pas avoir 2 clés 'comp' dans un même dictionnaire
Si tu ajoutes 2 fois 'comp', seule la dernière valeur est prise en compte
dic_nom_comp ressemble à ça : {'comp':'titi'}
Aufait:
pas
Il faut savoir que dans un dictionnaire, les clés sont uniques
donc on ne peut pas avoir 2 clés 'comp' dans un même dictionnaire
Si tu ajoutes 2 fois 'comp', seule la dernière valeur est prise en compte
dic_nom_comp['comp'] = 'toto' dic_nom_comp['comp'] = 'titi'
dic_nom_comp ressemble à ça : {'comp':'titi'}
Aufait:
print("Bienvenue !!")
pas
print("Bienvenu!!")
Au lieu de faire une liste de dictionnaires, tu pourrais même faire un tableau à 2 dimensions
nc lignes et 3 colonnes (nom, année de naissance, année de décès)
qu'en penses-tu ?

nc lignes et 3 colonnes (nom, année de naissance, année de décès)
qu'en penses-tu ?
print("Bienvenue !!") try: nc = int(input("\nCombien de compositeurs voulez vous saisir?: ")) compositeurs = [[None for j in range(3)] for i in range(nc)] for i in range(nc): nom_comp = input("\nDonner le nom du compositeur: ") compositeurs[i][0] = nom_comp a_naiss = int(input("Donner l'année de naissance du compositeur: ")) compositeurs[i][1] = a_naiss a_mort = int(input("Donner l'année de décès du compositeur: ")) compositeurs[i][2] = a_mort print('\nCompositeur naissance mort\n') for i in range(nc): for j in range(3): print("{:<12s}".format(str(compositeurs[i][j])), end = ' ') print('\n') except ValueError: print("Veuillez vérifier votre saisie!")
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu peux même afficher les messages d'erreurs précis au lieu de:
on peut faire ça:
print("Veuillez vérifier votre saisie!")
on peut faire ça:
import sys try: nc = int(input("\nCombien de compositeurs voulez vous saisir?: ")) ......... except ValueError: print(sys.exc_info()[1])