Maison >développement back-end >Tutoriel Python >Pourquoi est-ce que je reçois une erreur NameError lors de l'utilisation de la fonction d'entrée de Python ?
NameError : Nom « Variable d'entrée » non défini lors de l'utilisation de la fonction d'entrée
En Python, la fonction d'entrée vous permet de capturer les entrées de l'utilisateur. Cependant, si vous rencontrez une erreur NameError lors de l'utilisation de la fonction d'entrée, cet article en explore la cause et propose des solutions.
Python 2.7 vs. 3.x
Dans Python 2.7 , il y avait deux fonctions pour l'entrée : input et raw_input. La fonction d'entrée évaluerait l'entrée en tant qu'expression Python, tandis que raw_input capturait simplement l'entrée sous forme de chaîne.
Dans Python 3.x, raw_input a été renommé input. Cependant, la nouvelle fonction d'entrée se comporte désormais comme l'ancienne raw_input, lisant une ligne de l'entrée standard et la renvoyant sous forme de chaîne.
Dépannage de NameError dans Python 2.7
Si vous recevez une erreur NameError lors de l'utilisation de la fonction d'entrée dans Python 2.7, cela suggère que la variable à laquelle vous essayez d'attribuer l'entrée n'existe pas dans le contexte Python actuel. L'erreur de nom se produit lorsque vous tentez d'évaluer l'entrée en tant qu'expression Python mais que vous échouez en raison d'une variable non définie.
Considérations de sécurité dans Python 2.7
La capacité du La fonction de saisie pour évaluer les entrées de l'utilisateur présente également un risque de sécurité. Si votre script charge des modules avec des privilèges élevés, les entrées utilisateur contenant du code malveillant pourraient compromettre votre système.
Solution
Pour éviter l'erreur NameError et atténuer les risques de sécurité, utilisez raw_input fonction dans Python 2.7 à la place. Cette fonction capture simplement l'entrée sous forme de chaîne, sans l'évaluer. Si vous devez convertir l'entrée en un type de données spécifique, vous pouvez utiliser des fonctions appropriées comme int() pour les entiers.
Dans Python 3.x, vous pouvez utiliser la fonction d'entrée, qui se comporte désormais comme raw_input dans Python 2.7.
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!