Maison >développement back-end >Tutoriel Python >Comment lire et utiliser correctement la saisie numérique en Python ?

Comment lire et utiliser correctement la saisie numérique en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-24 14:29:10764parcourir

How Do I Properly Read and Use Numerical Input in Python?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn