Maison > développement back-end > Tutoriel Python > Pourquoi « input() » de Python renvoie-t-il des chaînes au lieu d'entiers ?

Pourquoi « input() » de Python renvoie-t-il des chaînes au lieu d'entiers ?

Patricia Arquette
Libérer: 2024-12-23 15:18:18
original
956 Les gens l'ont consulté

Why Does Python's `input()` Return Strings Instead of Integers?

Pourquoi x et y reçoivent des chaînes au lieu d'entiers

Lors de l'exécution du code fourni, en particulier les lignes x = input("Entrez un nombre : ") et y = input("Entrez un nombre : "), il invite l'utilisateur à saisir des valeurs, qui sont ensuite stockées dans x et y sous forme de chaînes, plutôt que nombres entiers.

Raison de ce comportement

Ce comportement est dû à la gestion des entrées par Python dans différentes versions. Dans Python 3, où le code fourni s'exécute probablement, la fonction input() renvoie la valeur saisie sous forme de chaîne par défaut. Pour convertir cette chaîne en entier, un transtypage explicite est nécessaire, comme le montre le code modifié ci-dessous :

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
Copier après la connexion

Gestion de différentes bases numériques

Python fournit un outil polyvalent approche pour accepter des nombres de différentes bases. L'utilisation de la base appropriée lors de la coulée, comme indiqué ci-dessous, permet l'interprétation des nombres dans différentes radicaux :

data = int(input("Enter a number: "), 8)  # Converts to base 8 (octal)
data = int(input("Enter a number: "), 16)  # Converts to base 16 (hexadecimal)
data = int(input("Enter a number: "), 2)  # Converts to base 2 (binary)
Copier après la connexion

Conversion en flottant pour les valeurs fractionnaires

Pour les valeurs qui peut contenir des composants fractionnaires, il est approprié de les convertir en flottants au lieu d'entiers. Ceci peut être réalisé en utilisant la syntaxe suivante :

x = float(input("Enter a number:"))
Copier après la connexion

Caractéristiques distinctives entre Python 2 et 3

Résumé

Les principales différences entre Python 2 et 3 en ce qui concerne la saisie utilisateur sont :

  • La fonction d'entrée de Python 2 a évalué les données reçues et les a implicitement converties en un entier, tandis que la fonction d'entrée de Python 3 les renvoie sous forme de chaîne par défaut.
  • Python 2 fournit les deux les fonctions input et raw_input, alors que Python 3 n'a qu'une entrée.

Python 2.x Behavior

  • input a évalué l'expression saisie et a renvoyé le résultat sous la forme appropriée (par exemple, entier ou chaîne).
  • raw_input a récupéré l'entrée sous forme de chaîne. sans interprétation.

Python 3.x Comportement

  • l'entrée fonctionne de la même manière que raw_input de Python 2, renvoyant l'entrée sous forme de chaîne.

Dangers potentiels avec la fonction d'entrée Python 2.x

Lors de l'utilisation de la fonction d'entrée dans Python 2.x, il est crucial de garder à l'esprit son évaluation automatique, car elle peut conduire à des comportements involontaires, comme permettre l'exécution de code malveillant.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal