raw_input Python

Python 3 a remplacé la méthode raw_input() de Python 2 par la méthode input(). Si vous essayez d’utiliser raw_input() dans Python 3, vous rencontrerez l’erreur NameError : name ‚Äòraw_input‚Äô n’est pas défini erreur.

Dans ce guide, nous allons discuter de ce que signifie cette erreur et pourquoi vous pouvez la rencontrer. Nous allons parcourir un exemple de cette erreur, avec une solution, afin que vous puissiez apprendre comment résoudre l’erreur.

NameError : name ‚Äòraw_input‚Äô n’est pas défini

La fonction raw_input() dans Python 2 collecte une entrée d’un utilisateur. Cette entrée peut être convertie en n’importe quel type de données, tel qu’une chaaîne, un entier ou un nombre à virgule flottante.

Considérez ce code :

nom d’utilisateur = raw_input("Entrez un nom d’utilisateur : ‚")

Nous pouvons utiliser ce code pour collecter un nom d’utilisateur auprès d’un utilisateur dans Python 2.

√ätre capable de collecter une entrée d’un utilisateur signifie que vous pouvez rendre vos programmes interactifs. Vous n’avez pas seulement besoin de définir toutes les données dans le programme que vous allez utiliser. Vous pouvez demander à un utilisateur de fournir des données.

Dans Python 3, de nombreuses modifications ont été apportées au langage Python. Parmi eux, raw_input() a été renommé en input(). Les deux fonctions collectent une donnée de sys.stdin (également connue sous le nom de "entrée standard") et renvoient cette donnée à un programme.

81% des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Nous allons construire un programme qui calcule la note qu’un étudiant a obtenu sur son devoir d’art. Le devoir est sur 50 et les étudiants peuvent recevoir une note A, B, C ou √âchec. Pour commencer, demandons à notre utilisateur d’insérer une note dont nous allons calculer la note en lettres :

:1em; padding-right:1em;">" PLUS : if else Python Statements : Un guide étape par étape

numeric_grade = int(raw_input("Entrez une note : ‚"))

Nous utilisons raw_input() pour collecter une note de l’utilisateur. L’utilisateur doit entrer une note dans notre programme avant que le reste de notre programme ne s’exécute. Nous convertir la valeur saisie par l’utilisateur en un entier afin que nous puissions effectuer des comparaisons numériques plus tard dans notre code. En effet, raw_input() renvoie une chaaîne par défaut.

Nous allons utiliser une instruction if pour calculer la note correspondante :

Nous utilisons un if, deux elif, et une autre déclaration pour calculer la note en lettres qu’un étudiant a obtenue en fonction de la note numérique que l’utilisateur a insérée dans le programme.

Notre dernière étape consiste à imprimer un message à la console informant l’utilisateur des résultats de notre calcul :

Cette déclaration affichera à la fois la lettre et la note numérique qu’un étudiant a obtenu.

Exécutons notre code et voyons ce qui se passe :

Notre code renvoie une erreur.

La solution

Le message d’erreur nous indique que nous référençons une valeur qui n’existe pas. Parce que nous utilisons Python 3.x pour exécuter notre programme, raw_input() n’existe pas.

Pour corriger notre code, nous devons remplacer notre instruction raw_input() avec une instruction input() :

Les instructions raw_input() et input() sont fonctionnellement identiques. Cela signifie que nous n’avons pas besoin d’apporter d’autres modifications à notre code pour rendre notre base de code compatible avec Python 3.x.

Exécutons notre programme avec cette modification :

Notre code calcule avec succès la note d’un élève.

Une note sur la réaffectation de la fonction raw_input

Une solution qui fonctionne techniquement est d’attribuer la valeur de raw_input() à la fonction input(). Nous pouvons le faire en utilisant affectation de variable. Cela vous permettra d’utiliser une fonction appelée raw_input() dans votre code Python 3.

Considérez cet exemple :

raw_input = input

Cette instruction indique à Python que la valeur de raw_input() devrait être égal à input().

"Career Karma est entré dans ma vie quand je ne Je l’ai le plus résolu et m’a rapidement aidé à correspondre à un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et à mes objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Ce n’est pas une bonne solution car la documentation officielle de Python 3 a progressivement supprimé le nom raw_input() au profit de input(). Certains développeurs qui lisent votre code peuvent être confus s’ils voient raw_input() dans une base de code Python 3, ralentissant ainsi le temps de développement.

Conclusion

L’NameError : name ‚Äò raw_input‚Äô n’est pas défini se produit lorsque vous essayez d’utiliser la méthode raw_input() dans Python 3. Pour corriger cette erreur, remplacez toutes les instances de raw_input() par la fonction input() dans votre programme.

Maintenant, vous avez les connaissances nécessaires pour corriger cette erreur comme un codeur Python professionnel !