Wejście nie jest zdefiniowane w JavaScript

| | | |

Python 3 zastąpił metodę raw_input() Pythona 2 metodą input() . Jeśli spróbujesz użyć raw_input() w Pythonie 3, napotkasz błąd NameError: name `raw_input` undefined.

W w tym przewodniku omówimy, co oznacza ten błąd i dlaczego możesz go napotkać. Przyjrzymy się przykładowi tego błędu wraz z rozwiązaniem, aby dowiedzieć się, jak go naprawić.

NazwaBłąd: nazwa „raw_input” nie jest zdefiniowana

raw_input() w Pythonie 2 zbiera dane wejściowe od użytkownika. Te dane wejściowe można przekonwertować na dowolny typ danych, taki jak ciąg, liczba całkowita lub liczba zmiennoprzecinkowa.

Rozważ ten kod:

username = raw_input ("Wprowadź nazwę użytkownika:")

Możemy użyć tego kodu do zebrania nazwy użytkownika od użytkownika w Pythonie 2.

Możliwość zbierania danych użytkownika oznacza, że możesz uczynić swoje programy interaktywnymi. Nie musisz tylko definiować wszystkich danych w programie, którego będziesz używać. Możesz poprosić użytkownika o dostarczenie danych.

W Pythonie 3 wprowadzono wiele zmian w języku Python. Wśród nich jest raw_input(), którego nazwa została zmieniona na input(). Obie funkcje zbierają dane z sys.stdin (zwane także "standardowym wejściem") i zwracają te dane do programu.

Przykładowy scenariusz

Zbudujemy program, który oblicza ocenę, którą uczeń uzyskał z pracy artystycznej. Zadanie jest większe niż 50, a uczniowie mogą otrzymać ocenę A, B, C lub Fail. Na początek prosimy naszego użytkownika o wpisanie notatki, którą obliczymy słowami:

digital_grade = int (raw_input ( "Wprowadź notatkę:"))

Używamy raw_input () do zbierania głosu użytkownika. użytkownik musi wprowadzić notatkę do naszego programu przed resztą programu. konwertujemy wartość wprowadzoną przez użytkownika na liczbę całkowitą , aby móc przeprowadzić porównania liczbowe w dalszej części kodu. ponieważ raw_input() zwraca domyślny ciąg.

Użyjemy instrukcji if aby obliczyć notatkę odpowiadającą literze:

To oświadczenie pokaże zarówno literę, jak i liczbę ocen student dostał.

Biegnijmy nasz kod i zobacz, co się stanie:

Nasz kod zwraca błąd .

Rozwiązanie

Komunikat błędu informuje nas, że odnosimy się do wartości, która nie istnieje. Ponieważ używamy Pythona 3.x do uruchomienia naszego programu, raw_input() nie istnieje.

Aby poprawić nasz kod, musimy zastąpić nasz < Instrukcja code>raw_input() z instrukcją input():

Instrukcje raw_input () i input () są funkcjonalnie identyczne. Oznacza to, że nie musimy wprowadzać żadnych innych zmian w naszym kodzie, aby nasza baza kodu była zgodna z Pythonem 3.x.

Uruchommy program z tą zmianą wykonaną:

Nasz kod z powodzeniem oblicza ocenę ucznia.

Uwaga dotycząca zmiany przypisania raw_input

Technicznie działające rozwiązanie to aby przypisać wartość raw_input() do funkcji input(). Możemy to zrobić za pomocą przypisania zmiennych . Umożliwi to użycie funkcji o nazwie raw_input() w kodzie Pythona 3.

Rozważ ten przykład:

raw_input = input

Ta instrukcja mówi Pythonowi, że wartość raw_input() musi być równa input() .

To nie jest dobre rozwiązanie, ponieważ oficjalna dokumentacja Pythona 3 stopniowo usuwała nazwę raw_input () na rzecz input () . Niektórzy programiści czytający Twój kod mogą być zdezorientowani, jeśli widzą raw_input() w bazie kodu Pythona 3, co spowalnia czas programowania.

Wnioski

NameError: nazwa `raw_input` nie jest zdefiniowana podczas próby użycia metody raw_input() w Pythonie 3 generowany jest błąd. Aby naprawić ten błąd, zastąp wszystkie wystąpienia raw_input() funkcją input() w program.

Masz teraz wiedzę, jak naprawić ten błąd jak profesjonalny programista Pythona!

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