Lecture des entrées sous forme de nombres en Python
La fonction d'entrée de Python renvoie les données sous forme de chaîne, contrairement à d'autres langages de programmation qui interprètent automatiquement les entrées de l'utilisateur comme un nombre. Cela peut entraîner des erreurs lors de l'exécution d'opérations mathématiques sur les entrées de l'utilisateur. Vous trouverez ci-dessous un exemple illustrant le problème :
play = True while play: x = input("Enter a number: ") # Input is taken as a string y = input("Enter a number: ") print(x + y) # Concatenates the strings instead of adding them print(x - y) # Raises a TypeError due to string subtraction print(x * y) # Multiplies the string representations as integers print(x / y) # Raises a ZeroDivisionError if y is an empty string print(x % y) # Raises a TypeError due to string modulus if input("Play again? ") == "no": # Again, input is taken as a string play = False
Solution :
Pour résoudre ce problème, vous pouvez explicitement convertir les chaînes d'entrée en entiers à l'aide de int() function :
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
Cela garantit que les données d'entrée sont traitées comme une valeur numérique et que les opérations mathématiques sont effectuées correctement.
Facultatif : conversion d'entrée flexible
Python vous permet de spécifier la base du numéro d'entrée. Cela peut être utile si vous devez lire des nombres dans un système de base non décimal. Le deuxième paramètre de la fonction int() indique la base :
x = int(input("Enter a number (base 8): "), 8) # Reads input as an octal number y = int(input("Enter a number (base 16): "), 16) # Reads input as a hexadecimal number
Si les données d'entrée ne sont pas valides pour une base spécifiée, la fonction int() générera une ValueError.
Remarque :
Dans Python 2.x, il existe deux fonctions d'entrée : raw_input() et input(). raw_input() se comporte comme input() dans Python 3.x, renvoyant l'entrée sous forme de chaîne. Pour des raisons de cohérence, il est recommandé d'utiliser input() dans Python 2.x et Python 3.x.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!