Python dla początkujących Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring
Wstęp Stworzony w latach 90 przez Guido van Rossum Nazwa pochodzi od serialu komediowego Latający cyrk Monthy Pythona
Wstęp Język skryptowy Język interpretowano - kompilowany W pełni obiektowy Rozprowadzany jest na otwartej licencji Umożliwia programowanie na różnych systemach operacyjnych Możliwe jest napisanie fragmentów kodu w C, C++ Automatyczne zarządzanie pamięcią Dynamiczne typowanie nie ma deklarowania zmiennych ani typów
Do czego można użyć Pythona? Tworzenie dynamicznych stron internetowych Usługi i serwisy społecznościowe Aplikacje desktopowe W zastosowaniach naukowych, czy finansowych Gry i aplikacje wykorzystujące 3D
Jak zacząć? czyli... skąd wziąd Pythona? Jest już zainstalowany razem z ArcGISem Jest już zainstalowany razem z QGISem Można zainstalowad samemu Można skorzystad z internetowych interpreterów
Wersja on-line http://www.tutorialspoint.com/execute_python_online.php http://www.skulpt.org/ https://repl.it/
Wersja on-line
Samodzielna instalacja
Mamy go! Ale co teraz? Jak go uruchomid?
Konsola
IDE IDE Integrated Development Environment zintegrowane środowisko programistyczne
Anaconda Pakiet zawierający Pythona z ponad 150 bibliotekami. Zawiera również darmowe IDE Spyder.
Spyder Inspektor obiektów Okno edytora Konsola
Pierwszy program Linia zaczynająca się znakiem # to komentarz. Jest on ignorowany przez komputer
Jak to działa? plik.py plik.pyc PVM Kod źródłowy Bajtkod Wirtualna maszyna
Zmienne Zmienne nazwa rok organizator miejsce Referencje GisDay 2017 UR Kraków Obiekty W sensie technicznym zmienna jest wskaźnikiem na adres w pamięci gdzie jest przechowywany obiekt.
Zmienne co się stanie z GisDay? Zmienne nazwa nazwa = GisDay Referencje Obiekty GisDay 100 nazwa = 100 Typ jest związany z obiektem, a nie ze zmienną.
Zmienne referencje współdzielone Zmienne nazwa projekt nazwa = GisDay projekt = GisDay Referencje Obiekty GisDay Nie tworzymy nowego obiektu tylko nową referencję
Zmienne nazwy Nie powinny zaczynad się od liczb Powinny zawierad tylko litery, liczby i podkreślenie (_) Nie powinny zawierad słów kluczowych Python rozróżnia małe i duże litery mojazmienna!= MojaZmienna
Typy zmiennych int 1234 lista lista =, GisDay, 2017, Kraków, UR - float 1.234 long 35L słownik (dict) slownik =, Wydarzenie : GisDay, Miejsce : Kraków - str GisDay 2017 bool True False krotka (tuple) krotka = (2017, GisDay, 10, Kraków )
Typy liczbowe int 1234 float 1.234 long 35L Podstawowe operacje: + - * / % ** Operatory porównania: = < >!=
Typy liczbowe przykład 1 Dlaczego operacja zwraca zero? Co oznacza znak %?
Typy liczbowe przykład 2 Która operacja zwróci 0 a która 0.4? Dlaczego?
Typy liczbowe przykład 3 Importowanie dodatkowej biblioteki
Łaocuchy = napisy = ciągi znaków G i s D a y 2017 0 1 2 7 10
Łaocuchy przykład 1 Co zwróci operacja?
Łaocuchy przykład 2 Co zwróci a*11+? Dlaczego? Który to indeks?
Łaocuchy przykład 3 Co oznacza zwrócona liczba? Wynik jest listą
Typy złożone - listy mojalista = * GisDay, Kraków, 2017 + mojalista
Typy złożone - listy mojalista [0] GisDay
Typy złożone - listy mojalista [0] GisDay [1] Kraków
Typy złożone - listy mojalista [0] GisDay [1] Kraków [2] 2017
Listy przykład 1 Ile elementów zwróci operacja? Gdzie dodany zostanie element?
Instrukcje warunkowe if warunek: blok instrukcji elif warunek: blok instrukcji else: blok instrukcji W instrukcji warunkowej występuje: dokładnie jedna fraza if, dowolnie wiele fraz elif, co najwyżej jedna fraza else. == jest równe!= nie jest równe < > mniejsze, większe niż Wcięcia poprzedzają instrukcję. Struktura blokowa jest elementem składni Pythona
Instrukcje warunkowe przykład 1 Pobieranie wartości od użytkownika Zwrócona wartośd jest typu string Co jest odpowiedzialne za kodowanie polskich znaków
Instrukcje iteracji for wartość in lista: blok instrukcji Powtarzamy czynnośd tyle razy, ile elementów ma ten zbiór czy też ciąg
Instrukcje iteracji przykład 1 range () - zwraca listę składającą się z kolejnych liczb całkowitych przedział
Instrukcje iteracji przykład 2 Jakie wartości będą w liście po skooczeniu pętli?
Praca na plikach Python posiada wbudowana funkcję open służącą do otwierania plików z dysku. Open zwraca obiekt pliku, dzięki któremu możemy się dostad do pliku i wykonywad na nim operacje. Zawartośd pliku traktujemy jako łaocuchy znaków. Plik = open( Nazwa_pliku, tryb ) Nazwa pliku jest wymagana r odczyt w zapis a dodawanie danych r+ - czytanie i pisanie Opcjonalny argument, w przypadku jego braku plik zostanie otwarty w trybie r
Praca na plikach zapis i odczyt Jeśli nie znajdzie pliku o tej nazwie tworzy nowy Tryb do odczytu jest domyślny
Praca na plikach zapis i odczyt
Funkcje Funkcja to częśd programu wielokrotnego użytku. Pozwala uruchamiad blok dowolną ilośd razy, używając zadeklarowanej do niego nazwy. Słowo kluczowe Nazwa funkcji Parametry funkcji def witaj(kto): print 'Witaj %s na warsztatach Pythona!' %(kto) witaj("jan") Wywołanie funkcji Ciało funkcji
Funkcje argumenty wejściowe Funkcja może: przyjmowad argumenty wejściowe zwracad wartości
Zadanie 1 Napisz program, który wczyta od użytkownika pewien napis, a następnie wyświetli 20 kopii tego napisu, każda w osobnej linii.
Zadanie 2 Napisz program, który obliczy pole trójkąta, pod warunkiem że użytkownik poda wysokośd i długośd podstawy tego trójkąta. Uwzględnij, że wysokośd i długośd podstawy mogą byd liczbami niecałkowitymi.
Zadanie 3 Napisz program, który wczyta od użytkownika liczbę całkowitą i wyświetli informację, czy jest to liczba parzysta, czy nieparzysta.
Zadanie 4 Napisz program, który wczyta od użytkownika napis a następnie wypiszę znaki tego napisu w kolejności odwrotnej.
Zadanie 5 Napisz program, który wypisuje liczby od 1 do 100. Dla wielokrotności trójki wyświetl "Fizz" zamiast liczby. Dla wielokrotności piątki wyświetl "Buzz. Dla liczb będących wielokrotnościami trójki oraz piątki wyświetl "FizzBuzz"
Zadanie 6 Napisz funkcję, która pyta użytkownika o dwie liczby i wypisuje czy są one równe a jeśli nie to wypisuje różnicę między nimi.
Zadanie 7 Napisz program, który pyta o wiek i w zależności od podanej wartości, wypisuje czy ktoś jest pełnoletni czy nie. Dodatkowo program powinien wypisywad: dla osoby pełnoletniej od ilu lat jest pełnoletnia dla osoby niepełnoletniej, ile lat brakuje do pełnoletności
Dziękuje