Programowanie w Pythonie - prezentacja 1 Adrian Karpowicz Instytut Matematyki Uniwersytet Gdański
Literatura Jonson R. Briggs, Python dla dzieci, PWN, Warszawa, 2015. Jerzy Wawro, Uczymy się programować w Pythonie, Otwarty podręcznik programowania. https://pl.python.org/ - strona polskiej grupy Python Python jest językiem programowania wysokiego poziomu (jego składnia i słowa kluczowe maja maksymalnie ułatwić rozumienie kodu programu) ogólnego przeznaczenia. Python rozwijany jest jako projekt Open Source zarzadzany przez Python Software Foundation, która jest organizacja non-profit. https://www.onlinegdb.com/online_python_compiler
Literatura Jonson R. Briggs, Python dla dzieci, PWN, Warszawa, 2015. Jerzy Wawro, Uczymy się programować w Pythonie, Otwarty podręcznik programowania. https://pl.python.org/ - strona polskiej grupy Python Python jest językiem programowania wysokiego poziomu (jego składnia i słowa kluczowe maja maksymalnie ułatwić rozumienie kodu programu) ogólnego przeznaczenia. Python rozwijany jest jako projekt Open Source zarzadzany przez Python Software Foundation, która jest organizacja non-profit. https://www.onlinegdb.com/online_python_compiler
Literatura Jonson R. Briggs, Python dla dzieci, PWN, Warszawa, 2015. Jerzy Wawro, Uczymy się programować w Pythonie, Otwarty podręcznik programowania. https://pl.python.org/ - strona polskiej grupy Python Python jest językiem programowania wysokiego poziomu (jego składnia i słowa kluczowe maja maksymalnie ułatwić rozumienie kodu programu) ogólnego przeznaczenia. Python rozwijany jest jako projekt Open Source zarzadzany przez Python Software Foundation, która jest organizacja non-profit. https://www.onlinegdb.com/online_python_compiler
Literatura Jonson R. Briggs, Python dla dzieci, PWN, Warszawa, 2015. Jerzy Wawro, Uczymy się programować w Pythonie, Otwarty podręcznik programowania. https://pl.python.org/ - strona polskiej grupy Python Python jest językiem programowania wysokiego poziomu (jego składnia i słowa kluczowe maja maksymalnie ułatwić rozumienie kodu programu) ogólnego przeznaczenia. Python rozwijany jest jako projekt Open Source zarzadzany przez Python Software Foundation, która jest organizacja non-profit. https://www.onlinegdb.com/online_python_compiler
Literatura Jonson R. Briggs, Python dla dzieci, PWN, Warszawa, 2015. Jerzy Wawro, Uczymy się programować w Pythonie, Otwarty podręcznik programowania. https://pl.python.org/ - strona polskiej grupy Python Python jest językiem programowania wysokiego poziomu (jego składnia i słowa kluczowe maja maksymalnie ułatwić rozumienie kodu programu) ogólnego przeznaczenia. Python rozwijany jest jako projekt Open Source zarzadzany przez Python Software Foundation, która jest organizacja non-profit. https://www.onlinegdb.com/online_python_compiler
Literatura Jonson R. Briggs, Python dla dzieci, PWN, Warszawa, 2015. Jerzy Wawro, Uczymy się programować w Pythonie, Otwarty podręcznik programowania. https://pl.python.org/ - strona polskiej grupy Python Python jest językiem programowania wysokiego poziomu (jego składnia i słowa kluczowe maja maksymalnie ułatwić rozumienie kodu programu) ogólnego przeznaczenia. Python rozwijany jest jako projekt Open Source zarzadzany przez Python Software Foundation, która jest organizacja non-profit. https://www.onlinegdb.com/online_python_compiler
Python-podstawy Tworzenie zmiennej: nazwa_zmiennej = wartość_zmiennej np. aby utworzyć zmienna o nazwie liczba, która ma wartość 100 wpisujemy liczba = 100. Wyświetlamy wartość zmiennej za pomoca polecena print(nazwa_zmiennej) np. print(liczba). Różne zmienne moga mieć te same wartości. Zmienne moga przechowywać liczby, tekst, listy liczb i tekstów itd. Słowo zmienna odnosi się w programowaniu do miejsca, w którym przechowywane sa informacje. Aby wyświetlić tekst używamy znaku cudzysłowu np. print("hello World").
Python-podstawy Podstawowe działania matematyczne: +,,, /. Resztę z dzielania a przez b zapisujemy a%b. Wartość bezwzględna liczby a zapisujemy abs(a). Zadanie 01 Zapisz liczbę 1234 jako zmienna x a liczbę 19 jako zmienna y. Następnie zapisz jedno równanie (wykorzystujace co najwyżej +,,, /, %) dajace jako wynik część całkowita z dzielenia x przez y.
Python-podstawy Łańcuchem nazywa się zwykły tekst. W Pythonie tworzymy łańcuch umieszczajac go w cudzysłowie np. Hello World lub w apostrofach np. Hello world. Aby użyć w łańcuchu więcej niż jednego wiersza używamy potrójnego apostrofu np. x= Teraz jestem w pierwszym wierszu i już jestem w drugim wierszu print(x) Łańcuchy możemy mnożyć przez liczby naturalne np. jeśli łańcuch = ab to 3*łańcuch wynosi ababab.
Python-podstawy W programie Python mamy możliwość tworzenia list np. zakupy = [ mleko, chleb, cukier, sól ] Numery listy zaczynaja się od 0. Jeśli chcemy wyświetlić np. pierwszy element listy musimy wpisać: print(zakupy[0]) [m:n] wyświetla elementy z podanego zakresu, ale bez ostatniego np. aby wyświetlić element 2 i 3 należy wpisać print(zakupy[1:3]) Zadanie 02 Utwórz pięcioelementowa listę zakupów. Wyświetl cała listę, tylko trzeci element listy, wszystkie elementy bez pierwszego i ostatniego.
Python-podstawy Kolejne elementy do list dodajemy za pomoca funkcji append: nazwa_listy.append(element_dodawany) np. jeśli chcę dodać do listy zakupów masło to wpisuję: zakupy.append( masło ) Do usuwania elementów z listy używa się polecena del np. jeśli chcę usunać drugi element z mojej listy: del zakupy[1] Zadanie 03 Dodaj dwa produkty do swojej listy oraz usuń pierwszy i trzeci element z listy.
Python-podstawy Zadanie 04 Utwórz lista1=[1,3,5], lista2=[2,4,6], lista3 = lista1 + lista2 i lista4 = 3*lista1. Wyświetl te listy. Krotka (ang. tuple) przypomina listę, która używa nawiasów okragłych np. liczbyfib=(1,1,2,3,5) Zasadnicza różnica pomiędzy krotka a lista jest taka, że krotki po jej zdefiniowaniu nie można modyfikować.
Python-instrukcje Instrukcja if składa się ze słowa kluczowego if, po którym podajemy warunek oraz dwukropek (:). Wiersze po dwukropku musza znajdować się w bloku, jeśli warunek jest spełniony to instrukcje z bloku zostana wykonane. if warunek: blok instrukcji Zadanie 05 Napisać program w którym definiuje się zmienna Liczba_zyc = 3. Następnie jeśli zmienna jest większa od 0 to się od niej odejmuje 1 i wyświetla się jej wartość. Przetestuj program dla kilku wartości zmiennej Liczba_zyc. Uwaga Zwróć uwagę co się dzieje, gdy warunek nie jest spełniony.
Python-instrukcje W Pythone odstęp od lewego marginesu jest bardzo ważny. Kod znajdujacy się w tej samej odległości od lewego marginesu tworzy blok i za każdym razem, rozpoczynamy wiersz z większa liczba spacji niż poprzedni, tworzymy nowy blok, będacy częścia poprzednego bloku. Symbole używane w instrukcjach == równa się!= różny od >= większy lub równy <= mniejszy lub równy > większy < mniejszy
Python-instrukcje Instrukcja if then else if warunek: blok instrukcji, gdy warunek prawdziwy else: blok instrukcji, gdy warunek fałszywy Zadanie 06 Napisać program w którym definiuje się zmienna Liczba_zyc = 3. Następnie jeśli zmienna jest większa od 0 to się od niej odejmuje 1 i wyświetla się jej wartość w przeciwnym razie wyświetla się komunikat Koniec gry. Skopiuj i zastosuj instrukcje kilka razy.
Python-instrukcje Instrukcja if i elif if warunek1: blok instrukcji, gdy warunek1 prawdziwy elif warunek2: blok instrukcji, gdy warunek2 prawdziwy elif warunek3: blok instrukcji, gdy warunek3 prawdziwy... else: blok instrukcji, gdy żaden z powyższych warunków nie jest spełniony
Python-instrukcje Zadanie 07 Zdefiniuj zmienna kolor zawierajac a łańcuch czerwony. Napisz instrukcje, która jeśli zmienna kolor zawiera czerwony to zmienia kolor na zielony i go wyświetla, jeśli kolor niebieski to zmienia na zielony i wyświetla, w przeciwnym razie zmienia kolor na niebieski i wyświetla. Wykonaj kilka razy tę instrukcje.
Python-instrukcje Warunki można łaczyć za pomoca słówkluczowych and (i) oraz or (lub). Zadanie 08 Napisać program w który definiuje się zmienna x oraz instrukcje (bez użycia elif), która będzie wyświetlała komunikat czy x jest cyfra.
Python-instrukcje Zmiennej można przypisać wartość pusta None. None nie jest tożsama z wartościa 0, ponieważ oznacza brak wartości, a nie liczbę o wartości 0. Stosujemy ja gdy chcemy zresetować jakaś zmienna lub zdefiniować zmienna bez ustalana jej wartości (wiemy, że zmienna będzie potrzebna później w programie, ale chcemy już na poczatku zdefiniować wszystkie zmienne). Jeśli x jest łańcuchem zawierajacym liczbę całkowita np. x= 100. To aby przekształcić łańcuch na liczbę całkowita używamy funkcji int np int(x). Jeśli x jest łańcuchem zawierajacym liczbę wymierna to aby dokonać konwersji używamy funkcji float. Jeśli chcemy liczbę na łańcuch to używamy funkcji str.
Python-instrukcje Zadanie 09 Zdefiniuj zmienna wiek jako łańcuch zawierajacy twój wiek (zapisany cyframi). Wymyśl instrukcje, która w warunku będzie zawierała twój wiek, ale użyty jako liczbę.
Python-pętle for ( dla każdego x z przedziału... ) lista=[ a, b, c ] for i in lista: print(i) Działanie instrukcji: dla każdej i, przyjmujacego kolejne wartości z listy lista, wykonaj instrukcję print. Do tworzenia sekwencji, których elementy należa do ciagu arytmetycznego, używamy funkcji range: range(n) tworzy [0, 1, 2,..., n-1] range(m,n) tworzy [m, m+1,..., n-1] range(m,n,k) tworzy listę o kroku k np. range(1,10,2) tworzy [1, 3, 5, 7, 9]. k może być też ujemne wtedy m>n np. range(3,0,-1) tworzy [3, 2, 1].
Python-pętle Zadanie 10 Napisać program, który wypisze: a) kwadraty wszystkich liczb całkowitych od 0 do 20, b) sześciany wszystkich liczb całkowitych od 10 dp 20, c) odwrotności wszystkich parzystych liczb całkowitych od 16 do 6 (w podanej kolejności).
Python-pętle Funkcja len podaje długość listy, łańcucha. Możemy jej użyć w pętli, gdy nie znami długości listy. Zadanie 11 Określ jaki jest wynik działania programu: a = [ Ala, Ela, Adam, Janek ] for i in range(len(a)): print(i, a[i]) Uwaga: Zwróć uwagę na użycie funkcji len. Zadanie 12 Zmodyfikuj powyższy program w ten sposób, aby wyświetlał imiona z listy a oraz z ilu liter się składaja.
Python-pętle Pętle moga zawierać inne pętle mówimy wtedy o nich, że sa zagnieżdżone. Zadanie 13 Wyjaśnić jak działa następujacy program: l1=[ a, b, c ] l2=[ d, e ] for x in l1: for y in l2: print(x, y) print(y, x) Uwaga: Zwróć uwagę w jaki sposób tworzymi bloki w pętli zagnieżdżonej.
Python-pętle Pętla while ( dopóki ) a=1 while a<10: a=a+1 print(a) else: print("koniec") Else wykona się niezależnie od tego czy while było wykonane choć raz. Zadanie 14 Napisać program, którego wynik działania będzie identyczny jak powyższego programu, ale kod programu nie będzie zawierał polecenia else.
Python-pętle Zmiania przebiegu pętli Polecenie break przydaje się kiedy chcemy natychmiast przerwać wykonywanie pętli. Zadanie 15 Ustalić jaki jest wynik działania programu: for i in range(100): if i==50: break print(i) Uwaga Należy zwrócić uwagę na sposób tworzenia bloków.
Python-pętle Polecenie continue działa analogicznie jak break, tylko że pętla nie jest przerywania, a jedynie pomijany jest kod po continue i pętla dalej kontynuuje działanie. Zadanie 16 Ustalić jaki jest wynik działania programu: x=[2,-1,3,-2,9] for i in x: if i<0: continue print(i**0.5) Zadanie 17 a)używajac m.in. polecen: range, continue i % napisz program wyznaczajacy kwadraty wszystkich liczb naturalnych od 0 do 100 niepodzielnych przez 6. b) Używajac m.in. polecen: range, continue, % oraz not napisz program wyznaczajacy kwadraty wszystkich liczb naturalnych od 1 do 1000 podzielnych przez 25.
Python-funkcje Definicja funkcji musi zawierać: 1) nagłówek funkcji obejmujacy a) nazwę funkcji, która pozwoli zidentyfikować funkcję w pozostałej części programu b) listę argumentów, która funkcja otrzymuje na poczatku działania programu 2) ciało funkcji, zawierajace instrukcje, które zostana wykonane w momencie wywołania (użycia) funkcji a) jeżeli funkcja ma zwracać jakiś rezultat, musi zawierać odpowiednia instrukcję W języku Python składnia definicji funkcji jest następujaca: def nazwa_funkcji ( lista_parametrów): instrukcje_do_wykonania
Python-funkcje Zadanie 18 Zdefiniuj funkcję: def pierw(n): return n**0.5 oraz za jej pomoca oblicz 2. Zdefiniowana uprzednio funkcję możemy w dowolnym miejscu usunać, posługujac się instrukcja del np. del pierw Zadanie 19 Co oblicza poniższa funkcja: def pierw(n): if n>=0: return n**0.5 else: return (-n)**0.5*1j Przetestuj jej działanie. Jakie liczby powinno się użyć przy testowaniu powyższej funkcji.
Python-funkcje Funkcja może przyjmować więcej niż jeden argument i zwracać więcej niż jeden rezultat. Zadanie 20 Napisać funkcję, która będzie liczyła sumę odwrotności dwóch liczb. W przypadku, gdy co najmniej jedna z liczb jest zerem ma się pojawiać stosowny komunikat. Zadanie 21Przetestować działenie funkcji: def rs(a,b): return a+b,a-b Uwaga: Jak widać, rezultat wywołania funkcji, która zwraca więcej niż jedna wartość, jest krotka. Możemy to wykorzystać w iteracji: for n in rs(3,4): print n Lub skonwertować wynik na listę: list(rs(2,7))
Python-funkcje Jeżeli wartości, które maja zostać przekazane jako argumenty funkcji zawarte sa w sekwencji, np.: l=[2,3] nie da się bezpośrednio przekazać takiej sekwencji jako listy argumentów (gdyż traktowana jest ona jako pojedynczy argument): Sprawdź rezultat polecenia print(rs(l)). Aby dało się rozpakować elementy sekwencji używamy gwiazdki. Sprawdź rezultat polecenia print(rs(*l)).
Python-funkcje Jeżeli w momencie definiowania funkcji nie jesteśmy w stanie określić liczby argumentów, które będa do niej przekazywane, poprzedzamy nazwę parametru formalnego oznaczajacego wszystkie pozostałe argumenty funkcji gwiazdka: def suma(*arg): s=0 for x in arg: s=s+x return s Zadanie 22 a) Przetestuj działanie powyższej funkcji. b) Sprawdź działanie polecenia print(suma(range(10))). Dlaczego nie jest ono poprawne i co zrobić, aby zadziałało?
Python-funkcje Funkcje rekurencyjne to funkcje, które odwołuja się do samych siebie. Dobrym przykładem funkcji rekurencyjnej jest silnia: def silnia(n): if n>1: return n*silnia(n-1) else: return 1 Zadanie 23 Przetestuj działanie funkcji silnia dla kilku argumentów.