Je débute en programmation et je me suis heurté a une incompréhension sur la correction d’un exercice :
nombres = input(“tapez votre suite de nombre séparé par des virgule”)
liste = nombres.split(“,”)
liste_entier = []
for nombre in liste:
nombre_entier = int(nombre)
liste_entier.append(nombre_entier)
print("liste: ", liste_entier)
somme = 0
for nombre in liste_entier:
somme += nombre
print("somme : ", somme)
moyenne = somme / len(liste_entier)
print("moyenne: ", moyenne)
nombre_superieur_moyenne = 0
for nombre in liste_entier:
if nombre > moyenne:
nombre_superieur_moyenne += 1
print("nombre suprieur: ", nombre_superieur_moyenne)
Ca peut paraitre évident pour certain mais je ne comprend pas pourquoi, à la ligne 4 ( for nombre in liste:) il y a ce “nombre” qui sort de nul part , alors que ma variable plus haut est “nombres”. J’ai cherché, pensant que “nombre” était peut être déjà connu par le logiciel, mais je ne trouve rien a ce sujet.
Je n’arrive pas à passer outre cette incompréhension, et cella me retarde dans mon apprentissage, si une personne avais l’amabilité de prendre un petit peu de son temps pour m’expliquer cela j’en serait comblé. Merci d’avance et je vous souhaite une agréable journée
Salut,
Cette ligne 4 correspond justement à une affectation : tu indique à Python que tu crées un nouveau nom (nombre) et que tu lui donnes pour valeur successivement (à chaque tour de boucle) le prochain élément de ta liste.
1 « J'aime »
Ah d’accord ! Donc “nombre” sera égale à la quantité de valeur dans ma liste.
Je n’avais encore jamais vue le cas de figure où une variable était crée sans le signe “ = ”.
Merci beaucoup pour votre aide, elle me permet d’abordé la suite de mon apprentissage plus sereinement. Je vous souhaite de passer une bonne journée
Je viens de comprendre, “nombre” prend chaque valeur de la liste les une après les autre
Oui c’est bien ça !
Il y a au final plusieurs cas d’usage où des variables sont crées sans =, mais ça ne saute pas toujours directement aux yeux :
def func(): ... crée une variable func
- idem pour les paramètres de la fonction, qui sont des noms dont les valeurs sont assignées lors de l’appel
class Test: ... crée une variable Test
for elem in (...,): ... crée une variable elem
import math crée une variable math
from math import cos crée une variable cos
import math as m crée une variable m (idem avec la forme from ... import ... as ...)
with open('file.txt') as f: ... crée une variable f
- on aura la même chose sur un
except Exception as e, mais ce binding de variable ne dure que le temps du bloc except, le nom disparaît ensuite
1 « J'aime »
Merci ! tout est extrêmement claire !