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
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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) # 36Bonne continuation
-