Invoer is niet gedefinieerd Javascript

| | | |

Python 3 heeft de raw_input () methode van Python 2 vervangen door de input () methode . Als je raw_input () probeert te gebruiken in Python 3, zul je de fout NameError: name `raw_input` undefined tegenkomen.

In deze handleiding, zullen we bespreken wat deze fout betekent en waarom u deze kunt tegenkomen. We zullen een voorbeeld van deze fout bekijken, samen met een oplossing, zodat u kunt leren hoe u deze kunt oplossen.

NameError: de naam `raw_input` is niet gedefinieerd

De raw_input () in Python 2 verzamelt input van een gebruiker. Deze invoer kan worden geconverteerd naar elk gegevenstype, zoals een tekenreeks, een geheel getal of een getal met drijvende komma.

Overweeg deze code:

gebruikersnaam = raw_input ("Voer een gebruikersnaam in:")

We kunnen deze code gebruiken om een gebruikersnaam te verzamelen van een gebruiker in Python 2.

In staat zijn om gebruikersgegevens te verzamelen, betekent dat u uw programma`s interactief kunt maken. U hoeft niet alleen alle gegevens in het programma dat u gaat gebruiken te definiëren. U kunt een gebruiker vragen om gegevens te verstrekken.

In Python 3 zijn veel wijzigingen aangebracht in de Python-taal. Onder hen is raw_input () die is hernoemd naar input (). Beide functies verzamelen gegevens van sys.stdin (ook wel "standaardinvoer" genoemd) en retourneren deze gegevens naar een programma.

Een voorbeeldscenario

We bouwen een programma dat het cijfer berekent dat een student behaalde met zijn artistieke opdracht. De opdracht is groter dan 50 en studenten kunnen een A, B, C of Fail krijgen. Om te beginnen vragen we onze gebruiker om een notitie in te voeren die we zullen berekenen in de volgende woorden:

digital_grade = int (raw_input ("Voer een opmerking in:"))

We gebruiken raw_input () om een stem van de gebruiker te verzamelen. de gebruiker moet een notitie in ons programma invoeren voor de rest van het programma. We converteren de waarde die door een gebruiker is ingevoerd naar een geheel getal zodat we later in onze code numerieke vergelijkingen kunnen maken. omdat raw_input () een standaardtekenreeks retourneert.

We gebruiken een if-statement om de notitie te berekenen die overeenkomt met de letter:

Deze verklaring zal zowel de letter als het cijfer tonen a student heeft.

Laten we rennen onze code en kijk wat er gebeurt:

Onze code retourneert een fout .

De oplossing

De foutmelding vertelt ons dat we verwijzen naar een waarde die niet bestaat. Aangezien we u We gebruiken Python 3.x om ons programma uit te voeren, bestaat raw_input () niet.

Om onze code te corrigeren, moeten we onze raw_input () vervangen. code>raw_input () instructie met een input () instructie:

De raw_input () en input () instructies zijn functioneel identiek. Dit betekent dat we geen andere wijzigingen in onze code hoeven aan te brengen om onze codebase compatibel te maken met Python 3.x.

Laten we onze programma met deze wijziging:

Onze code berekent met succes het cijfer van een student.

Een opmerking over het opnieuw toewijzen van de raw_input

Een technisch werkende oplossing is om de waarde van raw_input () toe te wijzen aan de functie input (). We kunnen dit doen met behulp van variabele toewijzing . Hierdoor kunt u een functie met de naam raw_input () gebruiken in uw Python 3-code.

Beschouw dit voorbeeld:

raw_input = input

Deze instructie vertelt Python dat de waarde van raw_input () gelijk moet zijn aan input () .

Dit is geen goede oplossing omdat de officiële Python 3-documentatie geleidelijk de naam raw_input () heeft verwijderd ten gunste van input () . Sommige ontwikkelaars die uw code lezen, kunnen in de war raken als ze raw_input () in een Python 3-codebase zien, waardoor de ontwikkelingstijd wordt vertraagd.

Conclusie

De NameError: de naam `raw_input` is niet gedefinieerd er wordt een fout gegenereerd bij het gebruik van de raw_input-methode () in Python 3. Om deze fout te corrigeren, vervangt u alle instanties van raw_input () door de functie input () in het programma.

Je hebt nu de kennis om deze fout op te lossen als een professionele Python-programmeur!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method