Problème avec la boucle for
Bonjour à toutes et à tous qui venez m'aider, qui passez par là par hasard ou qui ont le même problème.
Qui a l'aire simple pourtant.
Je vous montre le script:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| liste = {"a":0 , "b":0 , "c":0}
a = 0
b = 0
c = 0
for cle,valeur in liste.items():
print(" \n ")
print(" Combien pour ",cle," :")
valeur = input("")
if valeur == "":
valeur = "0"
valeur = int(valeur)
print("La valeur de ",cle," est de ",valeur,".")
print(liste) |
Voilà, c'est la même chose que je voudrait faire mais en plus simple.
Maintenant, voilà le résultat, quelque soit la valeur que nous désirons associer aux clefs contenue dans le dictionnaire:
Combien pour a :
1
La valeur de a est de 1 .
Combien pour b :
0
La valeur de b est de 0 .
Combien pour c :
La valeur de c est de 0 .
{'a': 0, 'b': 0, 'c': 0}
Comme vous pouvez le voir, quand je met 1 à a, python dit que a vaut 1, quand je met 0 à b, python dit que b vaut 0, quand je met rien à c, python dit que ça vaut 0.
Ok jusque là, tout cela est prévu dans le script.
Mais voyez vous le problème?
Non? Si?
Je vous dis:
quand la boucle est finie:
LES VALEUR ASSOCIEES AUX CLEFS SONT COMME S'IL ELLES N'AVAIENT PAS ETE MODIFIEES!!
Et je suis triste que ca marsse pas pôsque j'aurai besoin que python fasse ça... :calim2::calim2::calim2::calim2:
Pensez-vous pouvoir m'aider?
Merci par avance.
Vraiment merci.
PS : je débute en python... Donc si vous me présentez des programmes complexes, ou qui induisent de s'y connaître vraiment dans le sujet, je vous prierai de bien vouloir me les expliquer.
Marssi bôcou
encore toujours encore la même chose.
Bonjour,
J'ai trouvé une solution à mon problème, en grande partie grâce à vous.
En fait, une fois que les valeurs étaient bien entrées, j'avais besoin de les écrire, de les marquer ou voilà. Je vous montrerai comment j'ai fait. La réponse, venue en grande partie grâce au hasard, m'a fait utiliser deux listes dans la boucle for plutôt qu'un seul dictionnaire.
Et c'est génial, ça marche.
Il faut plus de lignes, mais le résultat en vaut le coup, selon moi. Je vous affiche le programme, plus lisible que la fois précédente, je l'espère.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| a = 0
b = 0
c = 0
liste1 = [a, b, c]
liste2 = ["a", "b", "c"]
d = 0
liste3 = {}
for k1, k2 in zip(liste1, liste2):
print(" \n ")
print(" Combien pour ",k2," :")
k1 = input("")
if k1 == "":
k1 = "0"
k1 = int(k1)
print("La valeur de ",k2," est de ",k1,".")
d += 1
liste3[k2] = k1
print(liste3) |
Voilà. J’espère qu'il est lisible...
Enfin voilà qui marche parfaitement et me permet malgré tout d'afficher la valeur que je viens de donner à a, b ou c sans avoir a faire je ne sais quelle manipe compliquée que je ne maîtrise pas encore en qualité de débutant en programmation.
Ce que je voulais dire par "ligne qui affiche la valeur que je viens de donner à a, b ou c", c'est la ligne qui fait " print("La valeur de ",k2," est de ",k1,".")", et qui n'est pas affichable à mon niveau lorsque l'on a que les clés d'un dico ou juste une liste, étant donné qu'il y a deux éléments.
Merci encore à tous(tes)!!!
A bientôt!
PS: l'affichage est correct?