Nowe posty

xx Jaki linux na laptop/tablet hybrydowy? (18)
Dzisiaj o 15:53:26
xx Repozytoria Archa (9)
Dzisiaj o 14:22:11
xx Otwaty port 123 udp (4)
Dzisiaj o 13:52:00
xx Brak możliwości instalacji aplikacji na Opensuse Tumbleweed. (7)
Dzisiaj o 12:45:32
xx konfiguracja sieci domowej (6)
Wczoraj o 23:58:47
xx petla while (11)
Wczoraj o 22:14:49
xx Ktoś zna datę przejścia Minta 19.3 z bety do oficjala? (47)
Wczoraj o 14:28:28
xx Jak,Zrobić kopię całego dysku? (3)
Wczoraj o 08:39:41
xx Brak rozdzielczości 16:9 ubuntu 19.04 (1)
Wczoraj o 01:46:25
xx Dziwne połączenia sieciowe! Co to jest? (14)
2019-12-13, 22:59:42

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

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • 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:


Windows for playing - Linux for programming - Hobby: Haiku OS

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2300
  • 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

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • 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 »
Windows for playing - Linux for programming - Hobby: Haiku OS

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2300
  • 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

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • 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.
Windows for playing - Linux for programming - Hobby: Haiku OS

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2545
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
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

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • 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.
Windows for playing - Linux for programming - Hobby: Haiku OS

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2545
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
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

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 376
    • 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
Windows for playing - Linux for programming - Hobby: Haiku OS

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2545
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
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