Nowe posty

xx czy możliwe konto bez hasła (16)
2018-05-22, 17:36:00
xx Skoro (nowość) "Plasma" - to propozycja funkcjonalna. (34)
2018-05-21, 21:28:06
xx Dodawanie uprawnień (4)
2018-05-19, 22:15:00
xx Podstawowa aplikacja do wideo. (5)
2018-05-18, 18:28:38
xx Tablet z linuxem (46)
2018-05-16, 12:32:58
xx Dołączenie SAMBY do domeny Active Directory na Slackware (1)
2018-05-15, 08:15:17
xx Brakuje mi wizualny kodek MPEG-4 (8)
2018-05-13, 18:02:59
xx odświeżanie podłączonych urządzeń usb (9)
2018-05-13, 14:28:33
xx [Rozwiązany] jak edytować krawędź widżetu Plasmy w Inkscape? (2)
2018-05-09, 20:59:44
xx Linux vs Winda (11)
2018-05-02, 14:37:55

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

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 304
    • 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 Gamers -- Linux for Programming -- FreeBSD, Haiku as a hobby

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 1900
  • 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: 304
    • 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 Gamers -- Linux for Programming -- FreeBSD, Haiku as a hobby

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 1900
  • 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: 304
    • 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 Gamers -- Linux for Programming -- FreeBSD, Haiku as a hobby

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2347
  • 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

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 304
    • 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 Gamers -- Linux for Programming -- FreeBSD, Haiku as a hobby

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2347
  • 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

Offline Zdzisław Knop

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 304
    • 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 Gamers -- Linux for Programming -- FreeBSD, Haiku as a hobby

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2347
  • 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