bonjour
je souhaite remplir un dictionnaire avec une boucle for, comment fait-on pour entrer une autant de clé et de valeur à chaque iteration ??
merci d'avance
bonjour
je souhaite remplir un dictionnaire avec une boucle for, comment fait-on pour entrer une autant de clé et de valeur à chaque iteration ??
merci d'avance
salut,
tu pourrais être un peu plus précis, montrer un exemple concret ?
Le programme doit d'abord lire un entier strictement positif correspondant au nombre de maisons. Ensuite, pour chaque maison, il doit lire la position horizontale (l'abscisse, le "x") et sa position verticale (l'ordonnée, le "y") de cette maison. Toutes les abscisses et ordonnées sont des entiers compris entre zéro et 1 million.
Le programme doit alors afficher le périmètre de la plus petite clôture rectangulaire englobant toutes les maisons. Ce rectangle doit avoir ses côtés parallèles aux axes du repère.
ok, de ce que je comprends t'as simplement besoin de stocker les coordonnées de tes maisons finalement (et faire des calculs dessus), une simple liste suffit, une liste de tuples par exemple
donc à chaque tour de boucle for il suffit de jouer du liste.append(tuple de coordonnées)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> maisons = [ (1,1), (3,5), (8,150), (18000,30) ] >>> maisons.append((250,7)) >>> maisons [(1, 1), (3, 5), (8, 150), (18000, 30), (250, 7)]
j'espère que ça répond à ta question.
je suis bloquer, je veux renseigner un tuple dans une boucle for de maniere a entrer la clef et comme abssiss et la valeur comme ordonner
mais j ai des message d'erreur je doit certainement pas savoir le coder correctement
[CODE]Nbmaison=int(input())
maison=[]
for loop in rang (Nbmaison):
maison.append.keys=int(input()) #la je bloque #
maison.append.values=int(input()) #la je bloque#
extraire la valeur maxi et mini des clef
extraire la valeur maxi et mini des valeurs
print (somme des quatres valeur) [CODE]
Salut,
Ton Code doit se finir par [/CODE] afin de l'afficher correctement.
En ce qui concerne ton code, c'est pas bon du tout, tu as fait une liste, tu peux donc pas mettre de clefs ou de valeur comme si tu faisais un dictionnaire.
Une liste et un dictionnaire sont deux choses différente avec des commandes similaire mais point de vue structure c'est complètement différent !
j'ai pas trop lu ce que tu voulais exactement, mais si tu veux les rentrer à la main via un input tu peux passer par une boucle while
EDIT:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 maison=[] while 1: NbMaison=input("Nombre de Maison: ") if NbMaison == "": break else: valeurMaison =int(input("Valeur Maison: ")) NbMaison = int(NbMaison) maison.append((NbMaison, valeurMaison)) print(maison) [(1, 1), (3, 5), (8, 150), (18000, 30)]
En qui concerne l'aide pour extraire le plus grand et plus petit:
Selon moi, il faut que tu partes sur une nouvelle boucle, avec 4 valeurs de base par exemple.
Exemple pour le parcours d'un liste simple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 i, max, min = 0,0,100 # retirer i si boucle for liste = [1,9,10,23,50] while i < len(liste): # ou for i in range(5): if max <= liste[i]: max = liste[i] if min >= liste[i]: min = liste[i] i+=1 print("Voici le nombres max: {0} et le nombre minimum: {1}.".format(max,min)) Voici le nombres max: 50 et le nombre minimum: 1.
ah ok, d'un coup on comprend mieux, donc effectivement si tu parles de couples clé-valeur c'est un simple dictionnaire qu'il te faut et non pas une liste de tuples
note tout de même que le dictionnaire se prête assez mal à l'exercice ici, pour une clé donnée il ne peut correspondre qu'une seule valeur, donc si tu as 2 maisons qui ont la même abcisse, tu stockes l'ordonnée de quelle maison ? (ça n'est pas infaisable mais c'est bien plus compliqué qu'en utilisant une liste de tuples)
ps: si tu pouvais faire un petit effort sur ton orthographe ce serait pas du luxe, d'avance merci de ta compréhension
@papyfouette: je sais pas si c'est voulu de ta part de décortiquer le min/max, sinon pour rappel python dispose déjà de builtins min() et max() qui prennent une liste en paramètre
@BufferBob :
J'ai appris comme ça dans la méthode swinnen et comme je n'en suis qu'à quelques mois de code et me consacre à fond sur tkinter en ce moment,
j'ai pas trop chercher aux autres possibilité de max(), min(), mais vu que tu m'en parles, ça m’intéresse ! une idée de doc à lire sur le sujet ?
Et puis ça permet de bien lui expliquer la façon de trouver le max, min d'une façon pédagogue ! (ou pas)
oh ben pas plus que les liens dans mon précédent post en fait (sur min() et max())
http://www.tutorialspoint.com/python/list_min.htm
http://www.tutorialspoint.com/python/list_max.htm
c'est des références trouvées à la va-vite via google, rien d'officiel ou d'exhaustif
yepEt puis ça permet de bien lui expliquer la façon de trouver le max, min (...)
Merci pour la doc, en effet c'est plus simple que de s'embêter à tout détailler !!
et la parti du max:
Car Z est la dernière lettre de l'alphabet donc 26(z),1(a),18(r),1(a) = 261181 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 liste = [123, 'xyz', 'zara', 'abc'] print(max(liste)) zara
où bien ça n'a aucun rapport ? et c'est juste une question d'octet et de nombre de lettre ?
EDIT: je viens de tester ça a pas l'air de marcher sous python 3x
alors c'est vrai que j'utilise plutot python2 pour ma part mais le principe reste le même, les valeurs numériques vont être considérées comme "plus petites" que les données alphabétiques, et les données alpha sont triées par défaut en fonction de leur valeur dans la table ASCII je suppose
mais comme pour la fonction sorted() on dispose d'un paramètre optionnel key= qui permet de fournir une fonction de discrimination
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> min('1', '2', 3, '4') 3 >>> max(['a', 'A']) 'a'
pour des liens plus "officiels" / py3, voir ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> min(['1', '2', 3, '4'], key=lambda x: int(x)) '1' >>> max(['a', 'b', 'c'], key=lambda x: ['d', 'a', 'c', 'b'].index(x)) 'b'
https://docs.python.org/3/library/functions.html#min
https://docs.python.org/3/library/functions.html#max
@amfortaf:
Pas de soucis, content d'avoir pu t'aider ^^
@BufferBob:
Merci beaucoup pour les exemples et les liens ! ^^
bonjour
cette fois-ci, j ai un soucis avec le code ci-dessous , EOFError: EOF when reading a line
comment resoudre cet erreur sachant que la longueur de la liste correspond au nombre de boucle
merci d avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 poidsAchat=int(input()) totale=0 a=0 cout=0 ingredients=[9, 5, 12, 15, 7, 42, 13, 10, 1, 20] t=len(ingredients) for loop in range (t): quantite=int(input()) cout=(quantite*ingredients[a]) a=a+1 totale=cout+totale print(totale)
Bonsoir,
Chez moi, Python 3.4, pas de problème…
Par contre, à quoi sert la variable loop? Et "t"? Et "a"?
Il faudrait vérifier mais ton code semble un peu réductible:
Clodion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ingredients=[9, 5, 12, 15, 7, 42, 13, 10, 1, 20] total=0 for ingred in ingredients: qte_ingred = int(input("qté ingrédient: " + str(ingred) + "\n")) total += qte_ingred*ingred print(total)
Salut,
Ton message d'erreur n'a rien à voir avec ton code.
On peut voir le traceback complet ?
Pour ton code, simplifie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 totale = 0 ingredients = [9, 5, 12, 15, 7, 42, 13, 10, 1, 20] for i in ingredients: quantite = int(input()) totale += quantite * i print(totale)
les variable t prend la taille de la liste dans la boucle for (j'aprends a marcher avec python avant de courrir, je débute)
et a est un compteur de nombre de jours (résolution de problème ci-dessous)
Ce que doit faire votre programme :
Il y a 10 ingrédients et ils ont tous un prix au kilo différent : 9, 5, 12, 15, 7, 42, 13, 10, 1 et 20.
Votre programme devra lire 10 entiers, le poids (en kilogrammes) qu'il faut acheter pour chaque ingrédient. Il devra calculer le coût total de ces achats.
c est vrai ca marche !!!
merci bien !
exactement,reprend moi si je me trompe, la variable ingred parcours tous les indices de la liste en les multipliant avec un coef, c'est bien ca ?
je savais pas qu'on pouvais écrire de cette manièretu peux m'expliquer pourquoi tu met le signe + avant et après ? et je comprend pas --> str(ingred)
Code : Sélectionner tout - Visualiser dans une fenêtre à part int(input("qté ingrédient: " + str(ingred) + "\n"))
merci d'avance
Bonsoir,
La variable "ingred" ne parcours pas tous les indices de la liste, mais les éléments (quels qu'ils soient: entiers, chaînes, listes, dico, objets…) de la liste eux-même.
Et chaque éléments est multiplié par un nombre entier entré au clavier. Exactement comme cela était demandé au premier post.
Le signe "+" permet de concaténer des chaînes de caractères.
Le "\n" correspond à une fin de ligne (cela permet de passer à la ligne suivante).
Dans la console il est facile et utile de connaître la fonction "help(truc)" qui permet d'avoir des renseignements sur énormément de choses sous Python!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 >>> ingred = 1 >>> print("qté ingrédient: " + str(ingred) + "\n") qté ingrédient: 1 >>> ingred = "je ne sais pas encore" >>> print("qté ingrédient: " + str(ingred) + "\n") qté ingrédient: je ne sais pas encore >>> ingred = "1.23456" >>> print("qté ingrédient: " + str(ingred) + "\n") qté ingrédient: 1.23456 >>>
Ceci montre que la fonction peut avoir un paramètre: c'est moins abscons qu'une ligne vide avec un curseur qui clignote!!!>>> help(input)
Help on built-in function input in module builtins:
input(...)
input([prompt]) -> string
Read a string from standard input. The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled. The prompt string, if given,
is printed without a trailing newline before reading.
Or les valeurs de la liste "ingrédients" sont des entiers. Ces entiers doivent être convertis en chaînes de caractères afin de pouvoir être concaténés aux autres parties du texte à afficher!
La fonction permettant la conversion en "string" est: str(X).
Clodion
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager