Maison > développement back-end > Tutoriel Python > Pourquoi Python 2.7 renvoie-t-il une « NameError » lors de la saisie de chaînes sans guillemets à l'aide de « input() » ?

Pourquoi Python 2.7 renvoie-t-il une « NameError » lors de la saisie de chaînes sans guillemets à l'aide de « input() » ?

Susan Sarandon
Libérer: 2024-10-28 14:47:02
original
1114 Les gens l'ont consulté

Why does Python 2.7 throw a `NameError` when entering strings without quotes using `input()`?

Manipulation des entrées utilisateur : surmonter les problèmes de citation dans Python 2.7

Lorsque vous vous lancez dans votre voyage avec Python 2.7, vous pouvez rencontrer un problème particulier lorsque vous tentez d'obtenir une entrée utilisateur dépourvue de guillemets. Cela peut être un obstacle frustrant, en particulier lorsque vous souhaitez manipuler la chaîne saisie comme une chaîne Python.

Si vous avez tenté d'utiliser la fonction input() comme suit :

testVar = input("Ask user for something.")
Copier après la connexion

Vous avez peut-être remarqué que si l'utilisateur saisit « Bonjour » sans les guillemets, l'erreur suivante se produit :

NameError: name 'Hello' is not defined
Copier après la connexion

Cette erreur apparemment énigmatique provient du fait que la fonction input() de Python 2.7 évalue la valeur de l'utilisateur. entrée sous forme de code Python. Par conséquent, lorsqu'il rencontre une chaîne sans guillemets, l'interpréteur l'interprète comme une référence de variable plutôt que comme une chaîne littérale.

Pour résoudre ce problème et garantir que la saisie de l'utilisateur est traitée comme une chaîne sans guillemets, vous pouvez exploitez la fonction raw_input() :

testVar = raw_input("Ask user for something.")
Copier après la connexion

Contrairement à input(), raw_input() préserve la chaîne textuelle saisie par l'utilisateur, vous permettant de la manipuler comme une chaîne sans aucune considération supplémentaire de guillemets.

Clé à retenir :

Optez toujours pour raw_input() plutôt que input() lorsque votre objectif principal est d'obtenir une chaîne d'un utilisateur sans nécessiter de guillemets. Ce simple commutateur éliminera le risque de références de variables erronées et garantira une manipulation transparente des chaînes.

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