Gdyby ktoś, dziś kazał Ci wytłumaczyć słowo „funkcja” zupełnie bez kontekstu prawdopodobnie byłoby to dość problematyczne. Zostawiając próby z „przykładami z życia” najprościej mówiąc: coś ma swoją funkcje – tzn, że spełnia określone zadanie. To jest bardzo dobre wytłumaczenie i można je przenieść do Pythona.
- funkcja – to fragment kodu, który wykonuje jakąś sekwencje poleceń. Może przyjmować argumenty.
- argumenty – dane niezbędne do wykonania funkcji
Funkcje wbudowane w Pythonie
Do tej pory na pewno znasz już funkcję print(), która wyświetla treści oraz przypadkiem pokazałam funkcję str(), która przekształca inne typy np. liczby w napisy czyli stringi. Czy można ten proces odwrócić? Oczywiście do zmiany napisu w liczbę wystarczy funkcja int()
a = 4
>>>
a * 4
16
>>>
b = str(4)
>>>
b * 4
'4444'
>>>
c = int('2')
>>>
c * 4
8
Może też bawiąc się konsolą, ktoś zwrócił uwagę, że Python zachęca by skorzystać z funkcji help() wyświetlającej pomoc do Pythona. Jeśli chcecie uzyskać więcej szczegółowych informacji o konkretnej funkcji to możecie zapytać – np. help(print). By zamknąć Pythona w konsoli wystarczy użyć funkcji quit().
Funkcją, która będzie działała odwrotnie od wyświetlania będzie odczytywanie input(). Funkcja input() wprowadzone przez użytkownika znaki z klawiatury zapisuje jako string.
input()
Przykładowe zdanie z klawiatury
Przykładowe, zdanie z klawiatury
Python czekał aż wpisałam „Przykładowe zdanie z klawiatury”, a następnie je wyświetlił – funkcja wykonała się, a efektem było zapisanie tego zdania.
herbata = input()
zielona z jaśminem
>>>
print("Moja ulubiona herbata to", herbata)
Moja ulubiona herbata to zielona z jaśminem
Po odczytaniu przez funkcje input() co wprowadziłam z klawiatury zamiast od razu wyświetlić, Python zapamiętał to w zmiennej o nazwie herbata. Dopiero przez użycie print() wyświetlił zawartość zmiennej.
Mam nadzieję, że do tej pory wszystko wydaje się jasne? 😀
Spróbujmy z liczbami:
input()
365
'365'
>>>
liczba = input()
45
>>>
print(liczba)
'45'
>>>
print(liczba + 3)
File „”, line 1, in
TypeError: must be str, not int
Oho! Ten błąd nie powinien nikogo zaskoczyć – skoro input() czyta dane z klawiatury jako napisy, nic dziwnego, że do napisu „45” nie możemy dodać 3. Wspomniana wcześniej funkcja int() pomoże wykonując konwersję string do int.
print(int(liczba) + 3)
48
Funkcję tę można by było umieścić też wcześniej zaraz po odczytaniu liczby:
liczba = input()
45
>>>
print(liczba)
'45'
>>>
liczba = int(liczba)
>>>
print(liczba)
45
Widzisz różnicę? Liczba przestała wyświetlać się w apostrofie, więc wiemy, że nie mamy już do czynienia z napisem.
Lub od razu traktować jako liczbę:
liczba = int(input())
45
>>>
print(liczba)
45
Jeśli jeszcze pamiętasz w typie liczbowym znajdują się również liczby zmiennoprzecinkowe – float. Jak się można domyśleć dla nich funkcja będzie wyglądać float() i działać analogicznie do int().
liczba = float(input())
45
>>>
print(liczba)
45.0
>>>
print("Liczba + 3:", liczba + 3)
Liczba + 3: 48.0
Funkcji wbudowanych w Pythonie jest znacznie więcej, ale nie ma co się na początek przemęczać 😛 Mamy co ćwiczyć na dziś.
Zamknij Pythona w konsoli poleceniem quit(). Konsolę możesz zminimalizować.
W dowolnym folderze utwórz nowy plik o dowolnej nazwie i rozszerzeniu .py. Możesz użyć utworzonego po instalcji hello.py.
W treści umieść:
print("Hej!")
Z pierwszego wpisu wiesz jak uruchomić skrypt z poziomu IDLE.
Teraz zrobimy to z konsoli (chcę Cię trochę z nią oswoić).
Uruchamianie skryptu z konsoli
Możesz to zrobić na dwa sposoby.
1) python \ścieżka-do-pliku
Ścieżkę można zobaczyć w nazwie okna w IDLE, ale nie o to chodzi 😉
Ścieżka do pliku to miejsce, gdzie dokładnie znajduje się nasz plik. W Windowsie czy w Linuxie wystarczy na wybrany plik kliknąć prawym przyciskiem i zobaczyć właściwości. W Mac’u należy wybrać Plik > Informacje.
Z tego wynika, że mój plik znajduje się na pulpicie, a jego ścieżka to C:\Users\Rita\Desktop\hello.py.
W Mac’ach trzeba zwrócić uwagę na kierunek slashy, są odwrócone „/” względem windowsowych „\”.
Może tłumaczę rzeczy zupełnie banalne, ale lepiej, żeby nie było wątpliwości, by nikt nie stresował się, że nie wie jak zrobić kolejny krok.
Mam ścieżkę, więc mogę uruchomić plik poleceniem:
python C:\Users\Rita\Desktop\hello.py
(ścieżka bezwzględna do pliku)
W uproszczeniu
python .\Desktop\hello.py
(ścieżka względna do pliku)
Ponieważ w momencie uruchamiania znajduję się w katalogu C:\Users\Rita, to nie muszę podawać całej ścieżki, tylko ścieżkę względem tego katalogu, „w którym jestem”. Kropka przed \Desktop oznacza dosłownie „tutaj \wybierz Desktop\ wybierz plik hello.py”.
2) python nazwa_pliku.py
Żeby uruchomić plik bez podawania ścieżki musisz znajdować się w tej samej lokalizacji co plik.
Jak to zrobić?
W konsoli wpisujesz cd \ścieżka-do-folderu, w którym znajduje się plik i klikasz enter. W moim przypadku:
cd .\Desktop
Jestem teraz w katalogu Pulpitu, a w takim razie wystarczy wpisać python hello.py, aby skrypt zadziałał.
Zadanie 1
Teraz chcemy, tak aby skrypt:
- Zapytał o Twoje imię
- Powitał Cię po imieniu
- Zapytał o Twój wiek
- Zapytał o peron z Harrego Potter’a
- Odpowiedział (dowolnie łącząc wiek i peron), czy jest sens jechać do Hogwartu 😉
Korzystając tylko z tego co już wiesz jesteś w stanie napisać taki skrypt:
Spróbuj napisać własny kod.
Aby zapobiec błędom związanym z różnym kodowaniem znaków ascii, na poczatku skryptu dodaj nagłówek:
# -*- coding: utf-8 -*-
Normalnie znak # rozpoczyna linię komentarza, czyli nasze uwagi do kodu, które nie wpływają sam kod i nie są nigdzie wyświetlane. W tym wypadku jednak nagłówek informuje interpreter, że kodowanie znaków jest ustawione na utf-8 – czyli kodowanie zawierające również polskie znaki takie jak ą, ę, ć etc. Mimo to nie używaj polskich znaków w nazwach zmiennych, a jedynie stosuj je w wyświetlanych napisach.
Przykładowe rozwiązanie poniżej:
# -*- coding: utf-8 -*-
print("Jak masz na imię?")
imie = input()
print("Cześć", imie, "miło Cię poznać")
print("Ile masz lat?")
wiek = input()
print("Z jakiego peronu dostaniesz się do Hogwartu?")
peron = input()
print("W wieku", wiek, "lat chyba już nie ma sensu jechać na peron", peron)
Możesz też go znacznie skrócić. W swoim kodzie dwie pierwsze linie usuń i zmień na: imie = input("Jak masz na imię?")
Jak podoba Ci się ta zmiana? 😉
Zadanie 2 – kalkulator BMI
Zapisz kalkulator BMI, który wcześniej był w konsoli do pliku, tak aby pytał użytkownika o potrzebne do obliczeń dane.
Zadanie 3
Ty jeszcze tutaj i chcesz jeszcze zadań?
Spróbuj to samo z kalkulatorem kalorii. Dla uproszczenia przyjmij, że jest to kalkulator dla kobiet lub dla mężczyzn 😉
Przykładowe rozwiązania zadań na Githubie
Ten wpis powstał w ramach cyklu wpisów Python kurs dla początkujących
Mam problem z zadaniem 1… Przy podawaniu imienia wyskakuje mi błąd: NameError: name 'Maciej’ is not defined…
name to Twoja nazwa zmiennej, do której przypisujesz wynik funkcji input().
np. name = input(„Jak masz na imię?”)
Najlepiej wrzucić kawałek kodu, bo trudno mi powiedzieć czemu wyskakuje błąd nie widząc linijki
Wklejam print screen…
https://uploads.disquscdn.com/images/8a4026bfd910f9cb3ee4fdb347d9340b2a13eea9b041a24c96a82c3811451437.jpg
Z tego co widzę masz zainstalowanego Pythona w wersji 2.x
– także zamiast input() użyj raw_input() i będzie działać ^^
Natomiast, jeśli chcesz by ten kod został zinterpretowany przez Pythona 3.x to co wyświetlasz print przyjmuje w nawiasach.
Pomogło. 🙂 dziękuję za pomoc 🙂
Chyba już zapomniałam jak się pisze programy. Chociaż z tym programem nie miałam do czynienia.
To ja jeszcze do tego zadania z poprzedniej części (BMI) – bo we wzorze masz -5*wiek, a w obliczeniach +5*wiek, czyli rozumiem ma być dodane? 🙂
we wzorze jest -5*wiek – faktycznie, mój błąd, już poprawiam 🙂
Jeszcze w jednym miejscu jest +5. PS Fajny kurs. https://uploads.disquscdn.com/images/090fa77bb58f2da444d82ae32e1b1ef6b8fefdbb4cdbc4504b1c4dad1a9ab12c.png
Dzięki za uwagi, muszę po takiej przerwie usiąść i poprawic błędy, literówki i inne 😀
W jaki sposób wpisać wzrost do BMI? Bo jak podaję 1.70 to pojawia się taki błąd:
Podaj swój wzrost:
1.70
Traceback (most recent call last):
File „C:UsersKasiaDesktophello.py”, line 2, in
wzrost=int(input(’Podaj swój wzrost:n’))
ValueError: invalid literal for int() with base 10: '1.70′
cześć 🙂 wpisz 170 (czyli w centymetrach), a jeśli koniecznie musisz mieć 1.70 to dodaj mnożenie przez 100 (wzrost*100)
https://uploads.disquscdn.com/images/80eb5f76e876456681bb53ebb1d9585c5ed594d76045f33772521b703e508d66.png
Inną możliwością jest zrobić to tak.
„int” dotyczy, o ile się orientuję, tylko liczb całkowitych. Żeby program przyjmował liczby z ułamkami, np. 1.70, to musi to być oznaczone inną kategorią – „float”.
Ja też mam pytanie do wzoru z BMI (jedno o nawiasach zadałam w poprzedniej części). Twoja propozycja jest trochę na skróty, bo w miejscach zmiennych podstawiasz po prostu konkretne wartości, a chyba nie tak się powinno programować. Co powiesz na taki układ:
>>> BMI = weight/height**2
>>> weight = float(input(„Enter your weight: „))
Enter your weight: 64.4
>>> height = float(input(„Enter your height: „))
Enter your height: 1.62
>>> print (BMI)
24.538942234415483
masz rację, w jednolinijkowcu chodziło jedynie o logikę zapisu, nic więcej. O wiele lepiej mieć zmienne i je wielokrotnie używać 😉
najpierw pobierz coś do zmiennych, później linijka z obliczaniem BMI jeśli chodzi o działanie w konsoli, a tak to zapis super ✅
Hej. Popełniłem taki oto kod:
=========================================================================
print(’Program obliczy Twoje podstawowe zapotrzebowanie kaloryczne’)
weight = float(input(’Podaj swoją wagę: ’))
height = float(input(’Podaj swój wzrost w cm: ’))
age = float(input(’Podaj swój wiek: ’))
gender = input(’Podaj swoją płeć „k” lub „m”: ’)
s = 0
multiplier = 0
if gender == 'k’ or gender == 'K’:
s = -161
if gender == 'm’ or gender == 'M’:
s = 5
base = 10*weight+6.25*height-5*age+s
activity = int(input(’Wybierz numer odpowiadający twojej aktywności fizycznej:n Praca siedząca, brak dodatkowej aktywności fizycznej – 1n Praca niefizyczna, mało aktywny tryb życia – 2n Lekka praca fizyczna, regularne ćwiczenia 3-4 razy (ok. 5h) w tygodniu – 3n Praca fizyczna, regularne ćwiczenia od 5razy (ok. 7h) w tygodniu – 4n Praca fizyczna ciężka, regularne ćwiczenia 7 razy w tygodniu – 5n’))
if activity == 1:
multiplier = 1.2
if activity == 2:
multiplier = 1.4
if activity == 3:
multiplier = 1.6
if activity == 4:
multiplier = 1.8
if activity == 5:
multiplier = 2.0
result = base*multiplier
print(base)
print(’Twoje dzienne, podstawowe zapotrzebowanie na kalorie wynosi: ’,result,’ kcal’)
=========================================================================
Niby działa, ale kiedy chcę zastosować if elif else to wyskakuje mi błąd (w formie pop-upa) a nie tekstu w konsoli. Jedynie na if’ach nie ma błędu. Dlaczego? Na necie można przeczytać, że elif to prawidłowy zapis…
Hej! W ogole nie chce mi sie wczytac plik z poziomu konsoli. Wpisalem sciezke zgodnie z twoimi wskazowkami, a w odpowiedzi dostalem O i o… nie wiadomo co z tym zrobic 🙁
1) jestes pewien co do sciezki pliku? odsyłam do tej grafiki – https://www.flynerd.pl/wp-content/uploads/2017/01/powloka-2.png moja ścieżka na pulpicie widoczna jest w okienku w związku z tym mogę użyć
python C:UsersRitaDesktophello.py
lub będąc w folderze pulpitu
python hello.py
2) syntax error mógłby sugerować błąd w pliku
system operacyjny + wersja Pythona też jest ok?
https://uploads.disquscdn.com/images/abe3ce326e093a4fb01542a539dbce5fea5be85037a9fa0ddb07736710c38bc2.jpg
Hej, próbuję zrobić przykład z herbatą i niestety w ogóle nie wyświetla się odpowiedź „zielona”.. próbowałam wielokrotnie również na innych przykładach i nic. Co robię nie tak?
Nie do końca zrozumiałaś jak działa input() – input czeka na dane z klawiatury ;D
Możesz zapisać osobno wyświetlenie pytania i oczekiwanie odpowiedzi
print(„Jaka jest twoja ulubiona herbata?”)
herbata = input()
print(„Moja ulubiona herbata to”, herbata)
lub jednocześnie zapytać i czekać na odpowiedź:
herbata = input(„Jaka jest twoja ulubiona herbata? „)
print(„Moja ulubiona herbata to”, herbata)
Mam nadzieję, że to trochęrozjaśniło 😀
Tak, teraz rozumiem, dzięki! 🙂
A i jeszcze chciałam dodać, że bardzo mi się podoba ten kurs, ale nie tylko, inne rzeczy na tym blogu też ciekawe, jesteś pomocna, dziękuję 😉 cieszę się, że przypadkiem udało mi się tu trafić.
cieszę się, że się sprawdza! 😀
Witam, miałam problem z otworzeniem mojego pliku w konsoli, ponieważ znajdował się w folderze „Python projekty”. Wyskakiwał błąd, nie wiedziałam dlaczego, w końcu udało mi się wyczaić, że chodzi o spację ;-P Znalazłam odpowiedź w google, że gdy plik/folder itp. zawiera spację, wtedy należy całą ścieżkę ująć w cudzysłów. Czyli zamiast: Python C:UsersRitaPython Projektyhello.py będzie: Python „C:UsersRitaPython Projektyhello.py”. Piszę to dla potomnych, może też ktoś będzie miał taki błąd 😉 Pozdrawiam serdecznie.
Zakończyłaś moje 3-godzinne rozkmino-poszukiwania tym komentarzem. Dzięki!<3
Też miałem z tym problem i dopiero Ty dałaś odpowiedź. Dzięki!
no wlasnie slabo wytlumaczone.
Funkcja input() wprowadzone przez użytkownika znaki z klawiatury zapisuje jako string.
tak sie tlumaczy pythona dla poczatkujacych? ciezko wywnioskowac „na chlopski rozum”, o co tak naprawde chodzi, tlumaczenia powinny byc bardziej „ludzkie”. ale wiekszosc informatykow/ programistow po prostu nie potrafi normalnym jezykiem tlumaczyc ludziom spoza tematu, jak to dziala…
to jest kurs Pythona , co oznacza, że będąc na lekcji 2, masz za sobą wprowadzenie i lekcję 1, z której dowiesz się, że string to typ, który oznacza napisy 😉
Co więcej, kurs polega głównie na przetestowaniu tego co opisuję – prosto u siebie na komputerze, żeby nie było wiary na moje słowo, że to działa 😉
Funkcja input() zczytuje dane z klawiatury, więc nie ma potrzeby tego tłumaczyć inaczej niż słownie + przykładami 😉
Jeżeli ten sposób Ci słabo tłumaczy, to musisz poszukać materiałów odpowiednich dla siebie – kursu czy książki 😉 Dla każdego coś innego, byle zadziało!
Tutaj znajdziesz propozycje książek: https://www.flynerd.pl/2018/04/python-ksiazki-godne-polecenia.html
W internecie jest sporo darmowych materiałów, na pewno coś się znajdzie
Pozdrawiam
naprawde uwazasz, ze”funckja input() zczytuje dane z klawiatury” nie moznaby zapisac prosciej, np. „funkcja input() to polecenie dla Pythona wprowadzone bezposrednio z klawiatury” czy cos w ten desen?
no i to „Zczytuje”(popr.- sczytuje).
problem w tym, jak juz napisalam, ze programisci maja jakos inaczej skonstruowany mozg, ze nie potrafia przemowic do humanisty(o czym tez m. in. swiadcza orty), poza tym uwielbiaja brylowac swoim tajnym enigmatycznym jezykiem nerdow. dlatego zmeczona juz jestem przebijanem sie przez ten monotonny belkot w kolejnych publikacjach, bo wszedzie i tak to samo.
niemniej fajnie, ze znasz pythona, pozdr.
Jeżeli poważnie myślisz o IT na pewno będziesz musiała się przebijać „przez ten bełkot”, ale każdy feedback cenię i chętnie poprawię błąd ortograficzny. Jeżeli w języku polskim razi cię sposób komunikacji spróbuj porobić materiały po angielsku. Inną opcją dla zielonych jest książka z serii Rusz głową (https://bit.ly/Python-rusz-glowa) nie jest moją ulubioną pozycją dla początkujących, bo autor się strasznie rozwleka nad podstawowymi terminami. Z drugiej strony wiem, że wielu hobbystów ją ceni. Skocz do biblioteki i sprawdź czy przejrzyj darmowy podgląd pdf może to jest coś dla ciebie 😉
Byłoby nie fair wobec osób, które robią ten kurs pisać totalnie łopatologicznie i pomijać wprowadzanie jak to nazwałaś 'języka nerdów’ – i tak prędzej czy później będą musieli korzystać z innych źródeł niż ten kurs. Jednak zawsze staram się tłumaczyć słownie, albo przykładem do testowania jak dana metoda działa.
Jest wiele rzeczy, które ciężko zrozumieć bez praktyki (za to zachęcam do zajrzenia do najnowszego posta o zadaniach w Pythonie, bez mojego komentarza, same zadania 😉 ).
odnoszac sie do kwestii jezykowych- jesli maja to byc materialy dla poczatkujacych, to dalej bede upierac sie, zeb byloby milej widziane poslugiwanie sie jezykiem „lopatologicznym”. ale to moje zdanie. pomogloby to na pewno zrozumiec podstawy i byloby dobrym wstepem do pozniejszego „nerdowania”, a tak- majac metne pojecie „co autor mial na mysli” laik brnie dalej, udajac, ze rozumie enigmatyczne pojecia, jakimi posluguja sie profesjonalisci.
ucze sie tych rzeczy po angielsku na co dzien i ang. to moj jezyk codzienny, gdyz mieszkam za granica, jednak postanowilam szukac pomocy w jezyku rodzimym w nadziei, ze
mi to rozjasni pewne sprawy- no jednak ciezko.
robisz super robote, dziekuje bardzo. Ja pracuje w sieciach i systemach od ponad 10 lat ale postanowilem sie czegos nowego nauczyc w wolnych chwilach. Jak dla mnie super to tlumaczysz. Kurs SQL wyslalem siostrze co w ERP siedzi 🙂
Zamiast stwarzać problemy rozwiązuj je. Funkcja to nie to samo co polecenie 😉 Pojęcie stringa wytłumaczone było w poprzedniej lekcji o typach danych. Według zasady „Don’t Repeat Yourself” – DRY – programiści nie lubią się powtarzać 🙂 A tak na marginesie to bardzo fajna zasada co do samej idei istnienia funkcji (oraz class, modułów, itp.). Cóż wydaje mi się, że jest jeszcze jedno przysłowie (tym razem polskie) „jeśli wejdziesz między wrony, musisz krakać jak i one”. Jak już się tak czepiasz ortografii, to juz (popr.- już), programisci (popr. programiści) i tak w pętli wszystkie znaki diakrytyczne 😉 To tak
Osobiście lekcje uważam za bardzo proste i przyjemne, wręcz łopatologiczne.
Pewnie uprawiam nekromancję odpisując na ten komentarz, ale chciałam wyrazić swoją opinię, tak „dla potomnych” : nie znalazłam w internecie bardziej przejrzyście i w sposób przyjazny dla laika wytłumaczonych podstaw. Nie wiem jakie kłopoty może sprawić zrozumienie wyrażenia „sczytuje z klawiatury”. Wydaje mi się, że w komentarzu u góry po prostu wylewa się frustracja powodowana brakiem pewnych umiejętności lub niepowodzeniem – cierpliwość i pokora to (zwłaszcza w takim wypadku) klucz do sukcesu, pozdrawiam. :>
Jestem kompletnie zielona w temacie Pythona, faktycznie może da się to lepiej wyjaśnić, ale na moje kurs jest świetny i bez problemu da się pójść przy nie których rzeczach na logikę! I to mi się podoba, że tu trzeba troszkę pomyśleć, a nie ślepo klepać literki
SyntaxError: invalid syntax
>>> herbata =input()
zielona z jasminem
Traceback (most recent call last):„, line 1, in „, line 1
File „
herbata =input()
File „
zielona z jasminem
wywala mi bledy z tym input()
Wszyscy programiści uwielbiają przykłady z BMI 😀
Na przykładzie Harrego stworzyłam coś głupiego 😀 Wklejam screen https://uploads.disquscdn.com/images/031c31c562b1242fdd30385949d5018334de664b7f73cbc790b20debddeea470.png
😀
Witaj, wlasnie zaczalem sobie czytac twoj kurs a ze prosilas zglaszac bledy tudziez literowki, a wiec brakuje apostrofow
>>> input()
Przykładowe zdanie z klawiatury
Przykładowe, zdanie z klawiatury
Python czekał aż wpisałam „Przykładowe zdanie z klawiatury”, a następnie je wyświetlił – funkcja wykonała się, a efektem było zapisanie tego zdania.
>>> herbata = input()
zielona z jaśminem
>>> print(„Moja ulubiona herbata to”, herbata
Moja ulubiona herbata to zielona z jaśminem
i takie pytanie filozoficzne dlaczego liczby zmiennoprzecinkowe skoro zmiennokropkowe ;]
Ok. Wszystko fajnie. Ale co zrobić, żeby nie wywalało całego skryptu jeśli jakiś śmieszek w kalkulatorze BMI w polu „waga” wpisze „zzz” zamiast „75”? Chciałbym, żeby po takim czymś program zwrócił komunikat w stylu „tylko liczby pls”
za chwilę jest lekcja o ifach, możesz w prosty sposób pobrać wartość tekstową i sprawdzić (metody typu string) jakiego jest typu czy składa się z samych cyfr. Następnie za pomocą konstrukcji if else wyświetlisz komunikat, że wartość jest błędna. Gdy warunek if else umieścisz w pętli while, to dopóki użytkownik nie poda prawidłowej wartości będziesz go pytać o dane 😉
Hej mam problem, nie rozumiem dlaczego nie chce mi działać ta opcja A wydaje mi sie że wszystko zrobiłam tak jak radziłaś. Co mam zrobić? Załączam zdjęcie w odpowiedzi
https://uploads.disquscdn.com/images/744bf2df2f61e86aac735c45f56252c5679b8710e815a06689d349b1c6eb9ce2.png
Hej. Próbuję wczytać plik z pulipitu, ale wyskakują mi takie błędy:
File „hello.py.txt”, line 2
SyntaxError: (unicode error) 'utf-8′ codec can’t decode byte 0xea in position 15: invalid continuation bytem
lub
PS C:Usersseniu99desktop> python hello.py.txt
File „hello.py.txt”, line 1
SyntaxError: encoding problem: utf8
Już działa. Po prostu musiałem pisać wszystko w notepad++ , a nie w zwykłym notatniku
Kurs idzie jak po maśle, nie sądziłem że programowanie może być takie proste :v
Mam taką zagwozdkę. Korzystam z wersji 3.71 i zauważyłem, że :
input()
Przykładowe zdanie z klawiatury
Przykładowe, zdanie z klawiatury
u mnie brak przecinka w drugim zdaniu ( tym wyświetlanym). A w przykładzie z liczbą, to nie ma różnicy u mnie czy napiszę
liczba=input ()
45
print(liczba)
czy
print(45)
czy print(’45’)
to zawsze wychodzi mi liczba, bo te 45 nie jest w apostrofie. Czy może to wynikać w różnicy w wersjach środowiska czy może jednak czegoś nie zrozumiałem i coś źle zrobiłem?
Wspaniały kurs. Dziękuje że poświęciłaś swój czas na stworzenie go 🙂
Wytłumaczcie mi dlaczego to nie działa, gdzie popełniam błąd. Na razie do tego miejsca.
# -*- coding: utf-8 -*-
print(„Witaj w kalkulatorze BMI”)
waga = int(input(„Podaj swoją wagę w kg: „))
wzrost = float(input(„Podaj swój wzrost w m: „))
BMI = waga/(wzrost**2)
BMI
print(„Twoje BMI to:”, BMI)
print(„Policz teraz zapotrzebowanie kaloryczne dla twojego trybu życia”)
wiek = input(„Podaj wiek: „)
S = input(„Podaj S (K czy M): „)
S = 0
if S == „M”:S = 5
else: S = -161
PPM = 10 * waga + 6.25 * wzrost – 5 * wiek + S
print(PPM)
Wydaje mi się, że wiek, tak jak wzrost i wagę, też musisz zamienić na int
Tak, tak, to już rozgryzłem, ale dzięki za odp.
Super kurs :). Dziękuję, że poświęciłaś czas, by go napisać :).
Dziękuje za Twój czas poświęcony na napisanie kursu. Wszystko bardzo jasno wyjaśnione i zachęca do poznawania Pythona dalej 🙂
Dzięki 🙂
Bardzo fajny tutorial. Zacząłem pisać programy, nie znając nawet tych podstaw – po prostu łącząc różne skrypty metodą prób i błędów. To bardzo przydany materiał.
Dzięki
Witajcie,
bardzo fajny kurs dla początkujących. Myślę, że dzięki niemu w głowie zostaną mi podstawy Pythona – mam przynajmniej taką nadzieję 🙂
W ramach ćwiczenia nr 3 stworzyłem poniższe „coś”, co dodatkowo z automatu ma rozpoznać czy użytkownik jest kobietą, czy mężczyzną (przynajmniej jeśli chodzi o polskie warunki) – zawsze to jedna zmienna do wpisania z palca mniej 😛
________________________
# -*- coding: utf-8 -*-
imie=input(„Jak masz na imię? „)
print(„Witaj”, imie, end=”. „)
wiek=int(input(„Ile masz lat? „))
wzrost=int(input(„Ile masz wzrostu (w cm)? „))
waga=float(input(„Ile ważysz (w kg)? „))
l=len(imie)
S=0
if (imie[l-1]==”a”): S=-161
else: S=5
aktywnosc=int(input(„””nZ poniższej listy wybierz rodzaj najbardziej pasującej do Ciebie aktywności, podając przypisany do niej numer (w nawiasie kwadratowym)nn
[1] Praca siedząca, brak dodatkowej aktywności fizycznejn
[2] Praca niefizyczna, mało aktywny tryb życian
[3] Lekka praca fizyczna, regularne ćwiczenia 3-4 razy (około 5 godzin) w tygodniun
[4] Praca fizyczna, regularne ćwiczenia od 5 razy (około 7 godzin) w tygodniun
[5] Praca fizyczna ciężka, regularne ćwiczenia 7 razy w tygodniunn
Moja aktywność to: „””))
wspolczynnik=0
if (aktywnosc==1): wspolczynnik=1.2
if (aktywnosc==2): wspolczynnik=1.4
if (aktywnosc==3): wspolczynnik=1.6
if (aktywnosc==4): wspolczynnik=1.8
if (aktywnosc==5): wspolczynnik=2
ZNK=wspolczynnik*(10*waga+6.25*wzrost-5*wiek+S)
print(„nTwoje zapotrzebowanie na kalorie wynosi: „, ZNK, ” kcal”)
________________________
Pozdrawiam!
Mam na imię Marion, jestem Polką… Ze skryptu wyszło, że jestem facetem :D… Lepiej nie tak uogólniaj, rodzice teraz chętnie sięgają po obce imiona 🙂
Hej, zadania dla początkujących są bardzo, bardzo ogólne. Na tym etapie nie bawimy się jeszcze w obsługę błędów czy wyjątków.
Jeśli bawisz się tym zadaniem możesz np. stworzyć listę imion „odstąpień od reguły”, taką specjalną listę wyjątków, która będzie sprawdzać czy imię nie na 'a’ jest żeńskie, na wyższym poziomie można np. próbować połączyć się z API i sprawdzać czy podane imię istnieje w języku polskim i jaką ma formę – męską czy żeńską.
Pozdrawiam dociekliwych, widzę potencjał na testera! 😛
Hej, mam pytanko. A po co to l=len(imie)? Czy samo imie[-1] == 'a’ nie zczyta ostatniego znaku w stringu?
Dzięki 🙂
Hej, może było już poruszane, ale jeśli było to nie jest poprawione.
Zadanie z herbatą:
>>> print(„Moja ulubiona herbata to”, herbata
brakuje nawiasu zamykającego wartość printa. Może to powodować rozkminy.
Dzięki Fly, jak mi mąż kiedyś tłumaczył to wpisywanie całej albo części ścieżki dostępu to ni choroby nie mogłam zrozumieć o co mu chodzi, a tu proszę jedno ćwiczenie i czaje o co chodzi. Pozdrawiam
cieszę się, że się przydaje! Python nie jest taki trudny a przyjemnie się z nim uczy programowania
Fajnie piszesz. Bardzo konkretnie, na temat i na luzie. Dzięki za odcinek. Idę do kolejnych. Zaczynam się wciągać … 😉
Dobrze, że podajesz rozwiązania. Jak człowiek się uczy to zapomina, że trzeba pisać jak krowie na rowie! :*
Super. Póki co wszystko idzie dobrze i bez problemów. Nareszcie porządnie napisany i wyjaśniony kurs 🙂
Dzięki 😉
https://ibb.co/rZSPHbC
Czy forsowanie zmiennych do floata po to by się nie kićkał przy tym jak trzeba wybrać wartość zmiennoprzecinkową w aktywności to błąd ?
Nie 🙂 a za klika lekcji będzie o obsłudze wyjątków
Witam mam problem z kalkulatorem ;(. Tak wiem ,że wiek do tego nie jest wymagany chciałem po prostu mieć dodatkowa linijkę do nast. zadania. Nie mogę dojść do tego jak zmusić żeby przeliczyło mi BMI, odpowiedzi fajnie działają i wgl. ale jak dochodzi do ostatniej linijki to wiadomo nie mam wyniku tylko surowe BMI. https://imgur.com/a/568bYzT <- screenshot z mega ultra zaawansowanego kodu haha.
Witam, osobiście całkowicie zgadzam się z powyższym !
Dziękuję za kolejną lekcję!
Jak na razie wszystko jasne, dzięki
Niestety u mnie teraz nie działa zgodnie z opisem.
We fragmencie:
# -*- coding: utf-8 -*-
#zapytaj o imię
print(„Jak masz na imię?”)
imie = input()
otrzymuję błąd:
File „C:\OPL\Testy\Python\first.py”, line 4
SyntaxError: (unicode error) 'utf-8′ codec can’t decode byte 0xea in position 15: invalid continuation byte
Po zamienieniu w tym fragmencie „imię” na „imie” kod się wykonuje.
Hej 🙂 po pierwsze póki co świetny kurs. Mam jednak jakiś dziwny problem z Powershellem przy zadaniu pierwszym. Cokolwiek nie zrobię wyskakuje błąd:
An expression was expected after '(’.
CategoryInfo : ParserError: (:) [], ParseException
FullyQualifiedErrorId : ExpectedExpression
Przy czym jak zrobię to samo w shellu (tak jak w lekcji 1) to działa…
Znalazłam wątek z tym problemem, ale na tym etapie nauki nie wiem co mogę zrobić, żeby to naprawić… 🙁
Przesyłam linka: https://github.com/dahlbyk/posh-git/issues/180
Chciałam jeszcze dopytać, czy te „1000+ zadań” warto od razu robić sobie równolegle, czy najpierw skończyć te 8 lekcji?
Pozdrawiam i dzięki za to co robisz!
Nie wiem co robie źle ale cos z koncówką chyba nie tak.
Nie wiem, czy moje pytanie doczeka się odpowiedzi ze względu na datę tego wpisu, ale spróbuję. Mam taki problem, że po wykonaniu zadania i 'odpaleniu’ programu wyświetla mi się tylko 'Jak masz na imie?’ i program całkowicie nie widzi reszty. Ściągnęłam pytania i odpowiedzi z GIT i w przypadku Twoich przykładów pojawia się ten sam problem. Print screen poniżej:
https://ibb.co/gzvJhG1
Ale to działa – wyświetla ci się jak masz na imię i Python czeka aż wpiszesz coś i zatwierdzisz enterem ;D
Hej.
Bardzo fajny kurs, dopiero zaczynam. Nie szukałem szczególnie stron o tematyce nauki, jednak z pośród wszystkich Twoja przypadła mi najbardziej do gustu.
Instalacje bibliotek i innych gadżetów zostawię sobie na później.
🙂
Pozdr
Cześć, ściągnęłam najnowszą wersję Python 3.7.4 i być może dlatego mam problem z otworzeniem zapisanego pliku w Windows PowerShell. Poniżej zamieszczam kawałek kodu:
_____________________________________________________________________
PS C:\Users\Asia> cd .\Desktop
PS C:\Users\Asia\Desktop> python hello.py
File „hello.py”, line 1
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 19:29:22) [MSC v.1916 32 bit (Intel)] on win32
^
SyntaxError: invalid syntax
PS C:\Users\Asia\Desktop>
__________________________________________________________
Strzałka błędu wskazuje na liczbę „7” w „Python 3.7.4”. Czy masz pomysł jak mogę to naprawić?
Swoją drogą bardzo fajny kurs. Dzięki za pomoc.
Super kurs, rozkręcamy się a ja jeszcze się nie pogubiłam, co rzadko zdarza się przy próbach programowania 😉
Dziękuję
Hej, możesz mi wyjaśnić czemu jak wpisuję liczbę jako input to nie działa (wyskakuje mi błąd „can’t assign to literal”)?
nazwa zmiennej musi byc stringiem, nie int’em (nie liczba)
czesc oco chodzi z wpisane z klawiatury na obrazku w pierwszej linijce jest
>>>imput()
wpisane z klawiatury
jak dokonac takiego wpisu bez (>>>)?
>>>
trzy strzałki – tzw. znak zachęty pokazywany przez Pythona, my go nie wpisujemy(!), odsyłam jednak do lekcji #1 Zabawy w konsoli, bo kurs, zakłada, że z zasady nie powtarzam informacji z poprzednich lekcji, jeśli nie jest to niezbędne 😉Bardzo fajne tłumaczenie i chodź znam już trochę pythona to i tak warto sobie przypomnieć podstawy
Pozdrawiam
Hej,
Ogromne dzięki za taką formę kursu!
Skrypty po uruchomieniu działają, jednak kiedy docieram do ostatniego pytania, po wpisaniu odpowiedzi i wciśnięciu Enter, okienko automatycznie się zamyka, nie wyświetlając nawet ostatniego wyniku. Nie jestem pewien jak pozbyć się tego efektu.
Nie wiem czemu wywala mi bład SyntaxError: invalid syntax, gdy chce uruchomić hello.py w PowerShell.
hej, napotkałem na problem ponieważ wszystko wpisuję jak trzeba, śieżkę pliku itd, ale żaden skrypt mi się nie otwiera, o co może chodzić?
Mam pytanie do autorki.
Czy zadanie z Hogwartem to aluzja do tego że w zbyt późnym wieku nie ma co brać się za programowanie???
Jak można zrobić to prościej? Bo trochę za dużo pisania, a napewno można krócej 🙂 …
Mam problem z otwarciem zapisanego pliku w konsoli. Przy wpisaniu lokalizacji (lub nawet przeciągnięciu jej z pulpitu do konsoli) pojawia się komunikat
C:\Users\username\AppData\Local\Programs\Python\Python38-32\python.exe: can’t open file 'C:\Users\username’: [Errno 2] No such file or directory
PS C:\Users\username>
but why?
Po napisaniu skryptu swojego lub wklejeniu Twojego z rozwiązania zadania wyświetla mi się tylko pierwsza linijka „print”, czyli „jak masz na imię”, reszta jest niewidoczna. Co może być tego przyczyną? Używam Python 3.7.7.
Cześć,
pytanie bardzo początkowe, ale utknełam i proszę o pomoc 🙂
Ćwiczenie 1
wpisuje:
print(„jak masz na imie?”)
imie=input()
do tego momentu wszystko jest ok, ale gdy piszę dalej:
print(„cześć”, imie)
i dalej kolejne komendy, konsola nie widzi już tego, tylko dwie pierwsze linijki, czyli do input
W zdaniu „które nie wpływają sam kod” chyba brakuje „na”.
Dzięki za całą robotę związaną ze zrobieniem tego 🙂
W końcu jakieś ciekawe zadania. Czegoś takiego szukałem.
Trzeba trochę się przyzwyczaić. W latach 80 zaczynałem z językiem Basic, kiedy jeszcze windowsa nie było i całkiem zgrabnie mi szło. Teraz patrzę, że w miarę ogarniam Pythona więc startuję z lekcjami. Dzięki.
Cześć!
gdzie robię błąd?? Liczyłem kalorie w poniższy sposób:
Po wprowadzeniu danych wiek 25, masa 63, wzrost 170, Kobieta. (jak wpiszecie zero przy aktywności to program przyjmie mnożnik „1”)
wynik jak wyszedł z tego skryptu to 1887.0
Liczą sposobem „z poprzedniego zadania” wynik to 1406.5:
z góry dzięki za pomoc!
Hej Rita! Fajny kurs, zrobiłem wszystkie zadania i nawet pobawiłem się z 'if’.
Mam problem z uruchomieniem pliku z konsoli praktycznie jeżeli zapiszę w IDLE Shell 3.9.4 i potem chcę uruchomić czy to z konsoli czy przez kliknięcie na plik wyskakuje czarne okno na sek. i znika. Tak jak by coś nie było kompatybilne ma win 10.
Widocznie się trochę pozmieniało. Print nie wyświetla już apostrofów, aby rozróżnić w ten sposób typ zmiennej pozostaje wklepanie zmiennej, bez żadnej funkcji.
komentarz dla zasady – cobyś wiedziała, że Twój trud i praca włożona w kurs mają sens i ciągle ktoś z tego korzysta. Bardzo dziękuję, miłego dnia i wszystkiego dobrego.
Hej!
Mam problem próbuje zrobić ten kalkulator BMI:
Witaj, chciałam się zapytać dlaczego python wyświetla bez komendy print tam gdze pokazałaś jak skrócić kod.
imie = input(„Jak masz na imię?”)
Myślałam, że bezwzględnym jest napisanie print
Dzięki za kursik, podrzucam swój kod 🙂
print(„Hej, przystojniaczku, jak masz na imie?”)
name = input()
print(„Te, spaslaku, ile wazysz?”)
weight = int(input())
print(„Ah, „, weight, „kg? A lat, to ile masz, pucybucie?”)
age = int(input())
print(„Kurwa, to ludzie tak dlugo zyja? A wzrostu, to ile masz?”)
height = int(input())
if name[-1] == „a”:
S = -161
else:
S = 5
print(„Twoje zapotrzebowanie kaloryczne,”, name, „wynosi: „, (str)(10*weight + 6.25 * height -5*age + S), „kalorii”)
Odnośnie komentarza JAKAJA, wydaje mi się, że użyty w blogu to język czysto i ogołnie mówiąc informatyczny. czy czysto programistyczny ?? może i tak. Ale to tak samo jak geografowie czy matematycy czy poloniści mają swoją terminologię. Oczywiście nei trzeba się znać na wszystkim ale próbując zagłębić się w temat trzeba niestety trochę poczytać suchej teori na początek i spróbować przetłumaczyć ja na „swój” język. Twoja terminologia użyta w komentarzu odnośnie String’a do mnie mniej przemawia niż ta użyta w Blogu, ale może to dla tego, ze w szkole na informatyce mieliśmy jakieś tam podstawy programowania i znam chociaż podstawową terminologię. Jeśli chcesz dowiedzieć się coś więcej w tym temacie spróbuj poszukać pod hasłami: co to są zmienne i typy zmiennych ( w dowolnym języku programowania bo to się przeważnie pokrywa) pozdrawiam i życzę siły i wytrwałości.
PS: zostać programistą chyba nie jest tak łatwo. jak przeglądałem oferty pracy odnośnie pythona, to oprócz samego jezyka, potrzeba by jeszcze znać bazy danych, jeszce jakis inny język i dodatkowe nazwijmy bonusy. nie będzie lekko
Do wszystkich majach problem z BMI:
Formulka to BMI = masa [w kg ] / (wzrost)^2 [w METRACH]
czyli wpisujac 195 cm => bedzie blad bo program rozumie 195 m wzrostu.
Kolejna sprawa to wpisanie 1.75 i jest blad: bo podajecie int() jako typ zmiennej (int = liczby calkowite) => trzeba to przekonwertowac na float (liczby zmiennoprzecinkowe).
PS. W Pythonie nie zapisujemy liczb z przecinkiem, tylko z kropka: 1.75 zamiast 1,75.
Cześć,
już jakiś czas temu chciałem wrócić do nauki pythona, którą już wielokrotnie przerywałem, dziękuję Ci za ten kurs, pozdrawiam 😀
Fajne zadanie, miałem troche skłopotów ale rozwiązałem zadanie, przecinki mnie wkurzaja, z kropka pomylic i błąd