Python >> Tutoriel Python >  >> Python

Comment lire les entrées sous forme de "nombres" en Python ?

Résumé :Pour lire les entrées d'un utilisateur et les convertir en entier, utilisez la commande int(input('Prompt')) pour Python 3 et input('Prompt') pour Python 2. Pour convertir l'entrée utilisateur en une valeur flottante, utilisez float(input('Prompt')) .

En tant que programmeur, l'entrée de l'utilisateur est l'un des principaux composants de votre programme si vous souhaitez rendre votre code interactif et convivial.

La gestion des entrées utilisateur en Python est plus facile que la plupart des autres langages de programmation.

Cependant, l'entrée de l'utilisateur peut varier en fonction des besoins. Par exemple :vous souhaiterez peut-être accepter une valeur numérique comme entrée alors qu'à un autre point de votre code, vous devrez peut-être accepter une chaîne comme entrée. Python vous aide à différencier facilement ces scénarios et nous discuterons de l'un de ces scénarios dans lequel vous devez accepter l'entrée de l'utilisateur sous forme de valeur numérique. Alors, plongeons-nous dans la question essentielle :

Problème :Comment lire une entrée numérique de l'utilisateur ?

Pour démontrer notre solution, nous allons écrire un petit morceau de code pour afficher le fonctionnement d'un basique calculatrice . J'espère que cela vous fascine, surtout parce que je crois que la meilleure façon de conquérir n'importe quel sujet ou concept est de résoudre de vrais problèmes. Mais avant toute chose, nous devons être approfondis avec certains concepts. Nous devons comprendre comment lire les entrées numériques de l'utilisateur, puis les utiliser pour des calculs ultérieurs.

Solution 1 :Entrées numériques dans Python 3.x

Python 3.x a une fonction intégrée appelée input() qui est utilisé pour accepter les entrées de l'utilisateur ; cependant, il lit toujours l'entrée de l'utilisateur sous forme de chaîne (sauf si elle est transtypée) et ne peut pas être utilisée pour des opérations numériques. Ainsi, pour faire face à cette situation, vous devez convertir explicitement l'entrée de l'utilisateur en une valeur numérique.

Lecture d'une entrée utilisateur sous forme de valeur entière

Pour lire l'entrée de l'utilisateur sous forme de valeur entière, vous pouvez accepter l'entrée de l'utilisateur à l'aide de la fonction input(), puis la convertir en un entier à l'aide de la fonction intégrée int() fonction. Suivez le code ci-dessous pour mieux comprendre ce concept.

a = int(input("Enter a number: "))
print("The data-type of variable a is: ", type(a))
print("Value of a: ", a)

Sortie

Enter a number: 5
The data-type of variable a is:
Value of a: 5

Vous pouvez également accepter un nombre avec n'importe quelle base (binaire, octal, hexadécimal) puis le convertir en une valeur entière à l'aide de la fonction int(). Veuillez consulter le code suivant qui illustre ce concept.

Attention :Si vous entrez une valeur erronée, vous obtiendrez une ValueError !

binary = int(input("Enter a binary number: "), 2)
print("Decimal equivalent: ", binary)
octal = int(input("Enter an octal number: "), 8)
print("Decimal equivalent: ", octal)
hexadecimal = int(input("Enter a binary number: "), 16)
print("binary equivalent: ", hexadecimal)

Sortie :

Enter a binary number: 1111
Decimal equivalent:  15
Enter an octal number: 17
Decimal equivalent:  15
Enter a binary number: F
binary equivalent:  15

Lecture d'une entrée utilisateur sous forme de valeur décimale (Float)

Pour lire l'entrée utilisateur sous forme de valeur décimale (float), vous pouvez accepter l'entrée utilisateur à l'aide de la fonction input(), puis la convertir en valeur flottante à l'aide de la fonction intégrée float(). Suivez le code ci-dessous pour mieux comprendre ce concept.

a = float(input("Enter a number: "))
print("The data-type of variable a is: ", type(a))
print("Value of a: ", a)

Sortie :

Enter a number: 100.25
The data-type of variable a is:  <class 'float'>
Value of a:  100.25

Solution 2 :Entrées numériques dans Python 2.x

Dans Python 2.x, deux fonctions étaient utilisées pour lire l'entrée de l'utilisateur. Ces fonctions étaient :

  • raw_input()
  • entrée()

Différence entre raw_input et les fonctions d'entrée dans Python 2.x

raw_input() entrée()
Lit l'entrée de l'utilisateur et la renvoie sous forme de chaîne. Il n'effectue aucune évaluation de l'entrée de l'utilisateur. Accepte une entrée utilisateur et renvoie le résultat de l'évaluation de l'expression/instruction dans l'entrée utilisateur.
N'attend pas d'instructions syntaxiquement correctes. Attend généralement des instructions syntaxiquement correctes.

Par conséquent, vous pouvez utiliser la fonction input() en python 2.x pour accepter un entier et effectuer n'importe quelle opération dessus. Ici, la conversion de type se fait automatiquement.

Le code suivant illustre l'utilisation de la fonction input() en Python 2.x :

value=input("Enter a number: ")
print(value)

Sortie :

Enter a number: 100+100
200

Cependant, il faut être très prudent lors de l'utilisation de la fonction input() en python 2.x car elle présente des problèmes de sécurité. Vous voulez savoir comment ? Jetez un œil à l'exemple de scénario ci-dessous et vous comprendrez certainement ses inconvénients.

Exemple :Si dans un programme le os module a été importé et dans une fonction input() l'utilisateur tape os.remove("/etc/hosts") puis le /etc/hosts Le fichier responsable de la conversion des noms d'hôte en adresses IP sera supprimé immédiatement.

Remarque :Le raw_input() La fonction n'est "plus applicable" dans les versions de Python 3.x. La fonction input() en python 3.x est similaire à la fonction raw_input() en python 2.x.

Exemple interactif dans votre navigateur

Avant de conclure, écrivons le code d'une calculatrice de base et entraînons-nous à lire les entrées numériques de l'utilisateur, puis effectuons certaines opérations mathématiques sur ces entrées.

Essayez-le vous-même :Exécutez le programme suivant dans votre navigateur.

Exercice :Essayez trois itérations différentes du programme !

Conclusion

Après avoir étudié cet article, vous ne rencontrerez aucun problème pour lire les entrées utilisateur numériques. J'espère que cela vous a aidé dans votre voyage Python. Restez à l'écoute pour plus d'articles et d'exemples intéressants à l'avenir !