Nouveau sur python et programmation, comment puis-je avoir cette erreur?
def cat_n_times(s, n):
while s != 0:
print(n)
s = s - 1
text = input("What would you like the computer to repeat back to you: ")
num = input("How many times: ")
cat_n_times(num, text)
La raison pour laquelle cela échoue est parce que (Python 3) input
renvoie une chaîne. Pour le convertir en entier, utilisez int(some_string)
.
En règle générale, vous ne suivez pas les index manuellement en Python. Un meilleur moyen de mettre en œuvre une telle fonction serait
def cat_n_times(s, n):
for i in range(n):
print(s)
text = input("What would you like the computer to repeat back to you: ")
num = int(input("How many times: ")) # Convert to an int immediately.
cat_n_times(text, num)
J'ai changé votre API ci-dessus un peu. Il me semble que n
devrait être le nombre de fois et s
devrait être le chaîne.
Pour référence ultérieure Python est fortement typé . Contrairement aux autres langages dynamiques, il ne convertira pas automatiquement les objets d'un type ou de l'autre (par exemple, à partir de str
à int
), vous devez donc le faire vous-même, vous l’aimerez à long terme, croyez-moi!