Nowe posty

Autor Wątek: [Python] błąd składni w programie  (Przeczytany 465 razy)

Online Zdzisław Knop

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 179
    • Zobacz profil
[Python] błąd składni w programie
« dnia: 2017-12-10, 15:46:40 »
Mam takie zadanie: Pobierz od użytkownika imię, wiek i powitaj go komunikatem: “Mów mi Python, mam x lat. Witaj w moim świecie imie. Jesteś starszy(młodszy) ode mnie.”
Pojawia się błąd składni w linii 10, ale nie wiem jaki to błąd:



Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 1801
  • 1709
    • Zobacz profil
Odp: [Python] błąd składni w programie
« Odpowiedź #1 dnia: 2017-12-10, 18:26:22 »
W terminalu działa
$ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> imie=input('Jak zwiesz?'); print('Jestes', imie)
Jak zwiesz?y
Jestes y
>>>
-To wygląda jak zaleciałość z pythona2 ( w v.2 pythonie nie było nawiasów, a w v.3 już są )
https://github.com/ninja-ide/ninja-ide/issues/1862
https://github.com/ninja-ide/ninja-ide/issues/544
Osobiscie nie mogę sprawdzić, ale ty możesz sprawdzi.ć czy jakać wtyczka tego nie powoduje komunikatu, ewentualnie zgłosić developerom uwagę.
- Mozesz tez sprawdziz zmieniajac cudzysłów z ' na "
« Ostatnia zmiana: 2017-12-10, 18:31:04 wysłana przez 1709 »
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122

Online Zdzisław Knop

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 179
    • Zobacz profil
Odp: [Python] błąd składni w programie
« Odpowiedź #2 dnia: 2017-12-10, 19:19:27 »
A mi wyszło coś takiego:



Wkleiłem cały kod do terminala i tak się chyba nie da

//Edit
Pozmieniałem wszystkie apostrofy na cudzyslowy ale nic nie dało
Mam takie zadanie: Pobierz od użytkownika imię, wiek i powitaj go komunikatem: “Mów mi Python, mam x lat. Witaj w moim świecie imie. Jesteś starszy(młodszy) ode mnie.”
Pojawia się błąd składni w linii 10, ale nie wiem jaki to błąd:




//Edit
Cytuj
python3

Nie zauważyłem, że korzystasz z Pythona
« Ostatnia zmiana: 2017-12-10, 20:00:00 wysłana przez Zdzisław Knop »

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 1801
  • 1709
    • Zobacz profil
Odp: [Python] błąd składni w programie
« Odpowiedź #3 dnia: 2017-12-10, 23:07:24 »
To prawda,
- jeśli wkleisz bezpośrednio to nie zadziala, bo terminal domyślnie używa powłoki bash
- jeśli uruchomię python3 lub python2 mam dostęp do powłoki pythona danej wersji
- jesli uruchomił bym gotowy skrypt z pythona to prawdopodobnie także bym widział błędy lub ich brak (taki podstawowy sposób debugowania)
Morał taki, że w ostateczności możesz zignorować komunikat, a jeśli irytuje to zgłosić developerom.
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122

Online Zdzisław Knop

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 179
    • Zobacz profil
Odp: [Python] błąd składni w programie
« Odpowiedź #4 dnia: 2017-12-11, 00:33:46 »
Cytuj
Morał taki, że w ostateczności możesz zignorować komunikat, a jeśli irytuje to zgłosić developerom.

Ucze się Pythona i troche mnie to irytuje, kod przepisuje bezbłędnie. Napisze do developerów Ninji z załączonym screenem.

Online Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2311
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • Linuxpedia.PL
Odp: [Python] błąd składni w programie
« Odpowiedź #5 dnia: 2017-12-11, 08:14:02 »
Zapewne w pędzie nauki Pythona przeoczył Pan paragraf, że są dwie niekompatybilne wersje tego języka: Python2 i Python3.
Jedną z (bardzo wielu) różnic jest to, że w Pythonie2 print jest słowem kluczowym (nawiasą są częścią skłądniową argumentu) a w Pythonie3 jest funkcją i przez to musi mieć nawiasy.

> python2 -c 'print(1,2,3)'
(1, 2, 3)
                                                                                                                             
> python3 -c 'print(1,2,3)'
1 2 3
                                                                                                                             
> python2 -c 'print 1,2,3'
1 2 3
                                                                                                               
> python3 -c 'print 1,2,3'
  File "<string>", line 1
    print 1,2,3
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(1,2,3)?

Po kolei:
* Wywołanie słowa kluczowego z jednym argumentem typu krotka 3-elementowa. Dlatego na ekranie pojawiła się rzeczona krotka.
* Wywołanie funkcji  z trzema argumentami typu liczba. Dlatego na ekranie pojawiły się tylko liczby
* Wywołanie słowa kluczowego  z trzema argumentami typu liczba. Dlatego na ekranie pojawiły się tylko liczby.
* Wywołanie funkcji bez umieszczenie argumentów w nawiasie - błąd skłądniowy.

Podkreślona na pierwszym screenie linia w obu dialektach jest poprawna, tylko znaczy co innego (co innego pojawi się na ekranie). To ewidentny błąd Ninja. Tyle, że... W repo Ubuntu jest NinjaIDE - tylko nie działa, bo wymaga py-qt4-qtwebkit, którego nie ma już w repozytoriach. Ściągnięty z GIT najnowszy (branch master) też nie działa, bo nie, więc nie miałem jak sprawdzić tego u siebie.

Jeżeli PyCharm jest za trudny (????), to Pythona3 fajny edytor to ERIC (obsługuje oba dialekty), IDLE (są wersja Idle2 i Idle3 dla odpowiednich dialektów) czy Spyder (też są dwie wersje dla 2/3).  Ewentualnie edytor VisualSourceCode z pluginem do Pythona (też obsługuje oba dialekty).
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy
Jeżeli uważasz, że warto: 1AfKbLX6nZSqv5DNhXMNLivc9fXwaHMd4Z

Online Zdzisław Knop

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 179
    • Zobacz profil
Odp: [Python] błąd składni w programie
« Odpowiedź #6 dnia: 2017-12-11, 12:13:56 »
To którą wersję do nauki wybrać Python2 czy Python3

Cytuj
Zapewne w pędzie nauki Pythona przeoczył Pan paragraf, że są dwie niekompatybilne wersje tego języka: Python2 i Python3.

Online Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2311
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • Linuxpedia.PL
Odp: [Python] błąd składni w programie
« Odpowiedź #7 dnia: 2017-12-11, 14:40:45 »
To którą wersję do nauki wybrać Python2 czy Python3
Python 3 or Python 2?

W skrócie: Python3, chyba, że ma się biblioteki napisane tylko na wersję Python2 (a jest ich coraz mniej)
« Ostatnia zmiana: 2017-12-11, 15:25:27 wysłana przez Paweł Kraszewski »
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy
Jeżeli uważasz, że warto: 1AfKbLX6nZSqv5DNhXMNLivc9fXwaHMd4Z

Online Zdzisław Knop

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 179
    • Zobacz profil
Odp: [Python] błąd składni w programie
« Odpowiedź #8 dnia: 2017-12-11, 18:41:31 »
Zainstalowałem PyCharma, ale podczas "kompilacji" wyskakuje błąd. Jeśli wpisze

print 2+2
print "hello world"

to wyskakuje błąd

File "C:/Users/Admin/PycharmProjects/untitled/main.py", line 1
    print 2+2
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(2+2)?

Process finished with exit code 1

ale jeśli dodam nawiasy to wyskakuje bezbłędnie

C:\Users\Admin\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/Admin/PycharmProjects/untitled/main.py
4
hello world

Process finished with exit code 0

Online Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2311
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • Linuxpedia.PL
Odp: [Python] błąd składni w programie
« Odpowiedź #9 dnia: 2017-12-11, 19:36:07 »
Tak, właśnie tak działa print w Pythonie3. Wymaga nawiasów, bo jest funkcją.
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy
Jeżeli uważasz, że warto: 1AfKbLX6nZSqv5DNhXMNLivc9fXwaHMd4Z