Python wstęp Michał Bereta www.michalbereta.pl Wprowadzenie... 1 Źródła wiedzy... 1 Uruchomienie interpretera Pythona... 2 Python jako kalkulator użycie interaktyne... 2 Uruchamianie skryptów z plików... 3 Formatowanie kodu... 4 Komentarze... 5 Łaocuchy znakowe... 6 Listy... 6 Funkcje... 6 Moduły, importowanie... 7 Klasy... 8 Zadania... 9 Wprowadzenie Będziemy używad Pythona w wersji 2.7 : www.python.org Do obliczeo bioinformatycznych wykorzystamy Biopython: http://biopython.org/wiki/main_page Edytory: o IDLE dołączone do instalacji pythona : sprawdź c:\python27\scripts\ idle.exe o http://pyscript.sourceforge.net/ o http://notepad-plus-plus.org/ Źródła wiedzy http://python.org/doc/ - po angielsku http://pl.python.org/docs/ - po polsku. Uwaga! Wersja 2.3. http://pl.wikibooks.org/wiki/python - po polsku http://www.trypython.org/ - interaktywny tutorial (j. ang.) 1
Uruchomienie interpretera Pythona Uruchom python.exe z miejsca instalacji, np. C:\Python27\python.exe Wpisz python w Start systemu Windows Uruchom IDLE : C:\Python27\Scripts\ idle.exe Python jako kalkulator użycie interaktyne Wypróbuj poniższe polecenia: dir() pozwala sprawdzid co jest aktualnie w pamięci interpretera. 2
Uruchamianie skryptów z plików Skrypt pythona to zwykły plik tekstowy może byd utworzony w dowolnym edytorze tekstowym. Skrypty mają rozszerzenie.py Skrypt uruchamia się: o przez polecenie python mój_skrypt.py o klikając dwukrotnie na plik zawierający skrypt (rozszerzenie.py) o przez edytor (jeśli na to pozwala), np. IDLE Wpisz do pliku: Zapisz na dysku jako plik z rozszerzeniem.py a następnie uruchom: 3
Wynik: Zmodyfikuj plik i ponownie uruchom (skrót: F5). Formatowanie kodu W pythonie konieczne jest zachowanie odpowiedniego formatowania tekstu skryptu. Wszystkie równorzędne linijki muszą zawierad takie samo wcięcie (najlepiej używad klawisza Tab, chociaż równa liczba spacji jest również poprawna). W poprzednich przykładach wszystkie linijki zaczynały się bez żadnego wcięcia. Jest to obowiązkowe, inaczej podczas próby uruchomienia: Kolejne zagłębienia kodu wymagają odpowiednich wcięd, np. 4
Inne konstrukcje wymagające odpowiednich wcięd: Komentarze Komentarze mają znaczenie tylko dla programisty, interpreter pythona je pomija 5
Łańcuchy znakowe Przeczytaj punkt 3.1.2 Ciągi znaków czyli napisy z http://pl.python.org/docs/tut/tut.html Przetestuj Listy Przeczytaj punkt 3.1.4 Listy z http://pl.python.org/docs/tut/tut.html Przetestuj Zaawansowane: Funkcje Funkcja to wydzielony fragment kodu, który można wykorzystad wielokrotnie 6
Uruchom ten plik funkcje zostaną załadowane do pamięci interpretera i mogą byd użyte: Moduły, importowanie Zawartośd skryptów można importowad w innych skryptach Po uruchomieniu (F5 w IDLE): Alternatywnie: lub 7
lub (importowana jest cała zawartośd modułu): Klasy Klasy to w uproszczeniu przepis na stworzenie obiektów mających swój stan (swoje zmienne lub inne obiekty) oraz swoje zachowania (funkcje). Przykładowa definicja klasy: o Specjalna funkcja init jest wykonywana podczas tworzenia obiektu (nie trzeba jej wywoływad bezpośrednio). Przykład: wywołanie sekw1 = Sekwencja( ACT ), które tworzy obiekt sekw1 typu Sekwencja, wykonuję funkcję init o self zmienna za pomocą której obiekt wskazuje na samego siebie we wnętrzu swoich funkcji; musi byd pierwszym parametrem w definicji funkcji, ale nie występuje podczas wywoływania funkcji o Zwród uwagę na koniecznośd stosowania odpowiednich zagłębieo w programie 8
Przykładowe użycie: Zadania Rozbuduj klasę Sekwencja tak, by obiekt tego typu mógł przechowywad krótki opis zawartej w nim sekwencji znaków. (Podpowiedź: dodaj nowe pole w konstruktorze, np. self.opis = moj_opis) Utwórz listę 5 obiektów typu Sekwencja W pętli (for lub while) wypisz informacje o każdym obiekcie z listy (metoda Wypisz() ) 9
Utwórz dodatkowy obiekt typu Sekwencja (poza listą) a następnie w pętli porównaj go z każdym obiektem z listy (metoda Porownaj() ). Utwórz nowy obiekt typu Sekwencja, który powstaje przez połączenie wszystkich obiektów z listy (wykorzystaj pętlę). Wskazówka: nowy obiekt zainicjuj pustym łaocuchem: o polaczone_sekw = Sekwencja( ) 10