[PYTHON] Besoin d'aide sur un exercice

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 !