[Python] Błędy interpreter'a?


(MacGregor) #1

Chciałem sprawdzić co to takiego ten słynny Python jednak po uruchomienia prostego programu udostępninego przez poradnik na Wikibooks (https://upload.wikimedia.org/wikibooks/pl/5/5e/Zanurkuj_w_Pythonie.pdf#section.3.1). Wyskakuje pełno błędów (screen poniżej). Czyżby to była wina Pythona w wersji 3.4?

 

Wn19UTNl.png


(mikolaj_s) #2

Raczej chodzi o to, że kopiując kod masz jakieś dziwne znaki niedrukowane lub ilośc spacji we wcięciach się nie zgadza. 

Spróbuj w jakimś edytorze sprawdzić znaki niedrukowane i poustawiać wszędzie te same (spacje lub tabulacje). Ewentualnie skasuj wszystkie znaki niedrukowane i wstaw własne tak aby wcięcia zgdadzały się z kodem w podręczniku.


(enedil) #3

Być może masz rację Mikołaju, ale z tego co wiem, Zanurkuj w Pythonie zostało stworzone dla pythona 2.


(Kamatori) #4

W Pythonie3 zmieniła się funkcja print, stąd ten błąd. Wklej sobie ten kod i będzie działać:

 

#-*- coding: utf-8 -*-
def buildConnectionString(params):
    """Tworzy łańcuch znaków na podstawie słownika parametrów.
    Zwraca łańcuch znaków.
    """
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
if __name__ == " __main__":
    myParams = {"server":"mpilgrim", \
                "database":"master", \
                "uid":"sa", \
                "pwd":"secret"
                }
    print(buildConnectionString(myParams))

 

Ale tak jak @enedil pisał, Zanurkuj dotyczy pythona2.X a nie 3.X. 


(MacGregor) #5

Działający przykład z którego nic nie rozumiem na nic mi się nie przyda.

 

W takim razie zna ktoś jakieś poradniki/książki dla początkujących? Zależy mi na dużej ilości przykładów i zadań kontrolnych. Dodam że znam pewne podstawy programowania (c/c++) więc nie musi to być materiał dla kompletnych laików.


(enedil) #6

Może tutaj?

https://www.codecademy.com/


(MacGregor) #7

Do angielksiej wersji poradnika jestem troszkę zniechęcony bo martwie się że nie zrozumiem wszystkiego jak należy ale sprawdzę co i jak. Pierwsze wrażenie jest bardzo poztywne.