Python - błąd w uruchamianiu skryptów


(Rosiak112) #1

Właśnie uczę się pythona, korzystam z interpretera na ubuntu.

Robiąc proste,testowe skrypty np. taki:

# vim:fileencoding=iso8859-2 

test = input("Wpisz cos:")

print test

Wyrzuca błąd,prawie przy każdym takim skrypcie. Po takim przykładowym skrypcie jaki podałem wyżej wyrzuca błąd:

michal@michal:~$ python test.py

Wpisz cos:cos

Traceback (most recent call last):

  File "test.py", line 2, in 

    test = input("Wpisz cos:")

  File "", line 1, in 

NameError: name 'cos' is not defined

o co chodzi ? proszę o pomoc i wyjaśnienie.


(Colzen Lan) #2

Zamiast:

wklep:

Różnica pomiędzy input a raw_input jest taka że to pierwsze domyślnie jest przeznaczone do wczytywania liczb, a drugie do znaków, jak tekst.

Poza tym, patrząc po opisie błędu, zmienna "cos" nie została wcześniej zdefiniowana, podczas gdy ty się do niej odwołujesz, i debugger pythona zwraca ci błąd.


(Rosiak112) #3

dzięki za wyjaśnienie,teraz już wiem co było źle,ale mam kolejny problem.

korzystam z kursu http://www.linuxpl.org/teksty/python/in ... cking.html

Tam jest kolejny genialny przykładowy kod:

# Program obliczający pole


    print "Witamy w programie obliczającym pole"

    print "------------------------------------"

    print


    # Wydrukuj menu:

    print "Wybierz figurę:"

    print "1 Prostokąt"

    print "2 Koło"


    # Czekaj na wybór użytkownika:

    figura = input("> ")


    # Oblicz pole:

    if figura == 1:

        wysokosc = input("Wpisz wysokość: ")

        szerokosc = input("Wpisz szerokość: ")

        pole = wysokosc*szerokosc

        print "Pole wynosi", pole

    else:

        promien = input("Wpisz promien: ")

        pole = 3.14*(promien**2)

        print "Pole wynosi", pole

No ale podczas uruchomienia skryptu wyrzuca error,oczywiście pomijam brak

# vim:fileencoding=iso8859-2

bo kiedy testowałem,dodałem definicje kodowania znaków. error:

michal@michal:~$ python test.py

  File "test.py", line 4

    print "Witamy w programie obliczającym pole"

    ^

IndentationError: unexpected indent

(Zulowski) #4

Ehh, ciężko skopiować i wkleić błąd w google?

http://stackoverflow.com/questions/1016 ... -in-python

błąd masz z wcięciami (odstępem od lewej)


(Colzen Lan) #5

Kurs jest dobry. Tak powiem na samym wstępie :stuck_out_tongue:

"unexpected indent" czyli chodzi o to że nie jest sformatowany poprawnie. Może się tak robić jak wklejasz kod z różnych stron.


(Rosiak112) #6

no bardzo ci dziękuje,zauważyłem ze taby ci zjadło,ale poprawiłem,mam jeszcze tylko jedno pytanko dotyczące input, czy da się zrobić jakiegoś ifa ze jeśli się wpisze literę to wywala napis żeby wpisać liczbę ?


(Colzen Lan) #7

Masz na myśli np.

Zainteresuj się jakimś ide np. NetBeans czy Eclipse. W trakcie pisania podświetlą ci większość błędów składniowych.


(Rosiak112) #8

ok,dzięki za wszelką pomoc, myślę że nie długo kiedy ja się nauczę tego języka to będę służył pomocą innym jak ty mi.