Python : int et variable locale
RésoluBonjour
Je débute sur python, Je crée une fonction tout simple, mais je ne sais pas pourquoi mon résultat n'est pas le même avec int(x*i) et int(x)*i
Ce cas là :
def maFonction(entierSaisi): i = 1 res = 0 while i <= int(entierSaisi): res += int(entierSaisi*i) i += 1 return res s = input('Saisir un entier :') print(maFonction(s))
Et celui là :
def maFonction(entierSaisi): i = 1 res = 0 while i<= int(entierSaisi): res += int(entierSaisi * i) # Je sors mon *i ici et le résultat me donne celui attendu (avec 5) 75 i += 1 return res s = input('Saisir un entier :') print(maFonction(s))
En vous remerciant
Windows / Chrome 106.0.0.0
A voir également:
- Python : int et variable locale
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Exercice python - Forum Python
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
un exemple plus simple:
print(3*"bonjour") print(3*"4") print(3*4)
Merci beaucoup pour ta réponse, en faite le entierSaisi m'a fait oublié que input me donne une variable str et pas int.
Tout à fait, et pour préciser ce qui a déjà été dit par yg_be, multiplier une chaîne de caractère par un entier revient à répéter autant de fois que cet entier. Du coup si tu as saisi "12" et que tu le multiplies par 3, tu obtiens "121212". En convertissant "12" dans son entier correspondant 12, la multiplication par 3 donne bien 36.
print("12" * 3) # 121212 print(12 * 3) # 36 print(int("12") * 3) # 36
Bonne continuation
c'est gentil d'écrire "entierSaisi", et c'est faux.
écris plutôt: