Błąd "NameError: name 'banan' is not defined" - dlaczego?

0
owoce = ['banan', 'jablko', 'truskawka', 'banan']

x = banan
if x in owoce:
    print("Jest")
else:
    print("Nie ma")
 Traceback (most recent call last):
  File "D:/STRONY/PYTHON/udasie/index.py", line 3, in <module>
    x = banan
NameError: name 'banan' is not defined

Process finished with exit code 1

Dlaczego mam taki błąd? Jak mam zdefiniować tego banana?
Podobnie jest, gdy chcę, żeby użytkownik, wpisując nazwę dodał ją do tabeli. Cyfry mi wpisuje bez problemu a jak już jest jakiś string to wywala błąd. Jestem początkujący i nie wiem jak przekonwertować te wartości, żeby wszystko się zgadzało. Podpowiedź?

0
 x = 'banan'
0
x = "banan"

Interpreter myśli że to zmienna której nie zadeklarowałeś. Każdy string musi byc w cudzysłowie, pojedyńczym lub podwójnym.

0

A tak?

 owoce = ['banan', 'jablko', 'truskawka', 'banan']
x = input()

if x in owoce:
    print("Jest")
else:
    print("Nie ma")

Po wpisaniu "banan"

Traceback (most recent call last):
  File "D:/STRONY/PYTHON/udasie/index.py", line 2, in <module>
    x = input()
  File "<string>", line 1, in <module>
NameError: name 'banan' is not defined

Process finished with exit code 1
0

Która wersja Pythona 2 czy 3?

0

3

Nosz ja pitole. Chciałem się pouczyć, bo fajny to, prosty i przyjemny język po php czy java, ale utrudnia mi naukę siebie jak może...

1

Opisany przez Ciebie błąd występuje w przypadku Pythona 2. Jaki jest wynik polecenia

 python --version
0

To wpisuj banan (bez żadnych apostrofów i cudzysłowów).
Masz pecha, że używasz funkcji input, która się radykalnie zmieniła między wersją 2 a 3.

1

Jak rozpoznałeś, że masz wersję 3 Pythona?

0

strzeliłem, bo nie pamiętam

3

Nie musisz instalować Pythona 3. Możesz użyć **raw_input **zamiast input. Jezeli jednak robisz tutorial który jest przeznaczony do Pythona 3 to tego lepiej zainstaluj.

0

Ok. Dziękuję. Do zamknięcia.

0

Żartujesz? To jest podstawowa informacja a Ty sobie zgadujesz. Jak masz 3, to musisz pisać w apostrofach.
W Pythonie 2, funkcja input ewaluuje to co wpisze użytkownik, zatem banan jest nieznaną zmienną - trzeba wpisać banan. Jest to kłopotliwe jeśli oczekujemy stringa, ale w zamian można wpisywać dowolne wyrażenia, np. 345+89*11
W Pythonie 3, funkcja input konwertuje to co pisze użytkownik na stringa..

0

@racuh, jak sprawdzałeś?

screenshot-20161215010250.png

screenshot-20161215010313.png

0

A teraz chciałem zainstalować pythona 3.5 i podczas instalacji wyskoczył błąd: "Nie można uruchomić programu, ponieważ na komputerze nie znaleziono api-ms-win-tuntime-l1-1-0.dll...

1 użytkowników online, w tym zalogowanych: 0, gości: 1