Podstawy programowania w Pythonie - Wykład 1
Transkrypt
Podstawy programowania w Pythonie - Wykład 1
Podstawy programowania w Pythonie Wykład 1 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Cz˛estochowie 3 października 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 1 / 21 Treści programowe Podstawowe pojecia ˛ programowania Proste typy danych w Pythonie Grafika żółwia w Pythonie Moduły Pythona Funkcje Instrukcja wyboru Iteracje Łańcuchy znaków Krotki Listy Pliki Słowniki Rekurencja Definiowanie klas dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 2 / 21 Zalecana Literatura Python 3 dla poczatkuj ˛ acych ˛ Peter Wentworth, Jeffrey Elkner,Allen B. Downey, Chris Meyers How to Think Like a Computer Scientist: Learning with Python 3 http://www.ict.ru.ac.za/Resources/cspw/ thinkcspy3/thinkcspy3.pdf Wersja online: openbookproject.net/thinkcs/python/english3e/ Wersja interaktywna: http://interactivepython.org/courselib/static/ thinkcspy/index.html Python 3 dla średnio zaawansowanych Mark Summerfield. Python 3. Kompletne wprowadzenie do programowania. Wydanie II. Wydawnictwo Helion. Gliwice, czerwiec 2010. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 3 / 21 Literatura uzupełniajaca ˛ Python 3 Przewodnik po jezyku ˛ Python http://docs.python.org/py3k/tutorial/ Dokumentacja dla wersji 3.2.3 jezyka ˛ Python http://docs.python.org/py3k/reference/ Mark Pilgrim Dive into Python 3. http://diveintopython3.org/ Python 2 Dokumentacja dla wersji 2.3 jezyka ˛ Python http://pl.python.org./docs Tłumaczenie ksiażki ˛ Dive into Python. http://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 4 / 21 Komputery i programy Pojecia ˛ podstawowe Komputer to elektroniczne urzadzenie, ˛ które przechowuje i przetwarza informacje zgodnie z wykonywanym programem. Wiekszość ˛ współczesnych komputerów oparta jest na tzw. architekturze von Neumanna (od nazwiska Johna von Neumanna). Cecha˛ charakterystyczna˛ tej architektury jest to, że programy oraz dane do programów znajduja˛ sie˛ w tej samej pamieci, ˛ zwanej pamieci ˛ a˛ operacyjna. ˛ Podstawowe elementy komputera to: procesor (CPU – od ang. Central Processor Unit) pamieć ˛ operacyjna (RAM – od ang. Random Access Memory) urzadzenia ˛ wejścia/wyjścia pamieć ˛ zewnetrzna ˛ dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 5 / 21 Komputery i programy Funkcjonalny schemat komputera CPU Urządzenia Wejściowe ✲ Urządzenia Wyjściowe ✲ Pamięć Zewnętrzna ✻ ❄ Pamięć Operacyjna dr Andrzej Zbrzezny (IMI AJD) ✲ Podstawy programowania w Pythonie ✛ 3 października 2012 6 / 21 Komputery i programy Pojecia ˛ podstawowe Program komputerowy to szczegółowy zestaw instrukcji określajacy ˛ działanie komputera. Programowanie to proces tworzenia kodu źródłowego programu w wybranym jezyku ˛ programowania. Jezyk ˛ programowania to zbiór reguł określajacych, ˛ które ciagi ˛ symboli tworza˛ program komputerowy oraz jakie obliczenia opisuje ten program. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 7 / 21 Komputery i programy Postacie programu Kod źródłowy to ciag ˛ instrukcji i deklaracji zapisany w zrozumiałym dla człowieka jezyku ˛ programowania. Kod maszynowy to postać programu komputerowego (nazywana wykonywalna˛ lub binarna) ˛ przeznaczona do bezpośredniego lub prawie bezpośredniego wykonania przez procesor. Postać binarna programu jest dopasowana do konkretnego typu procesora i wyrażona w postaci rozumianych przez niego kodów rozkazów oraz ich argumentów. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 8 / 21 Jezyki ˛ programowania Podział ze wzgledu ˛ na sposób przetwarzania Aby program napisany w danym jezyku ˛ mógł być wykonany, niezbedne ˛ jest odpowiednie przetworzenie jego kodu źródłowego: Kompilacja – kod źródłowy jest tłumaczony do postaci jezyka ˛ maszynowego. Interpretacja – kod źródłowy jest na bieżaco ˛ tłumaczony i wykonywany przez dodatkowy program zwany interpreterem. Jeżeli dany jezyk ˛ programowania podlega kompilacji, nazywany jest kompilowanym jezykiem ˛ programowania. Jeżeli dany jezyk ˛ programowania podlega interpretacji, nazywany jest interpretowanym jezykiem ˛ programowania. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 9 / 21 Komputery i programy Kompilacja programu ★ Kod Źródłowy (Program) ✧ ❄ Kompilator ★ Dane Wejściowe ✧ dr Andrzej Zbrzezny (IMI AJD) ✥ ✦ ★ Kod Maszynowy ✧ ✲ ✥ ✲ ✦ ❄ ✥ ✦ Wykonywany Program Podstawy programowania w Pythonie ★ Dane Wyjściowe ✧ ✲ 3 października 2012 ✥ ✦ 10 / 21 Komputery i programy Interpretacja programu ★ Kod Źródłowy (Program) ✧ ★ Dane Wejściowe ✧ ✥ ✲ ✦ ✥ Interpreter wykonywany przez komputer ✲ ✦ dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie ★ Dane Wyjściowe ✧ ✲ 3 października 2012 ✥ ✦ 11 / 21 Wprowadzenie Charakterystyka jezyka ˛ Python Python jest interpretowanym jezykiem ˛ programowania wysokiego poziomu stworzonym przez holenderskiego programiste˛ Guido van Rossuma w 1990 roku. Jezyk ˛ został tak nazwany w ślad za programem telewizyjnym BBC „Latajacy ˛ cyrk Monty Pythona”. Obecnie Python rozwijany jest jako projekt Open Source, zarzadzany ˛ przez Python Software Foundation, bed ˛ ac ˛ a˛ organizacja˛ non-profit. W stosunku do wcześniejszych wersji jezyka ˛ Python w wersji 3.0 wprowadzono wiele istotnych zmian, które spowodowały brak zgodności wstecz. Najnowsza˛ stabilna˛ wersja˛ jezyka ˛ Python jest wersja 3.3.0, która została wydana 29 września 2012 roku. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 12 / 21 Wprowadzenie Charakterystyka jezyka ˛ Python W Pythonie to wartości, a nie zmienne, posiadaja˛ typ – tak wiec ˛ Python jest jezykiem ˛ z typami dynamicznymi. Python posiada wbudowane abstrakcyjne typy danych takie jak np. listy, krotki, zbiory i słowniki. W Pythonie możliwe jest programowanie obiektowe, programowanie strukturalne i programowanie funkcyjne. Do zarzadzania ˛ pamieci ˛ a˛ stosuje sie˛ zbieranie nieużytków (ang. garbage collection), tak wiec ˛ Python nie wymaga od programisty recznego ˛ zarzadzania ˛ pamieci ˛ a. ˛ Cecha˛ wyróżniajac ˛ a˛ Pythona spośród innych jezyków ˛ jest stosowanie wcieć ˛ do wydzielania bloków kodu. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 13 / 21 Instalacja interpretera jezyka ˛ Python W systemie Ubuntu Linux Najprościej zainstalować Pythona 3 wykonujac ˛ w terminalu polecenie: $ sudo apt-get install python3 W systemie Windows Interpreter Pythona 3 można bezpłatnie pobrać ze strony http://www.python.org/download/releases/3.3.0/ Pobieramy plik python-3.3.0.msi poprzez link Windows x86 MSI Installer (3.3.0) lub plik python-3.3.0.amd64.msi poprzez link Windows X86-64 MSI Installer (3.3.0) Instalujemy Pythona klikajac ˛ na pobrany plik. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 14 / 21 Używanie interpretera Pythona Aby uruchomić interpreter Pythona 3 w systemie Linux otwieramy terminal i w konsoli wpisujemy polecenie: [student@lab3019 ˜]$ python3 Pojawi sie˛ krótka informacja o interpreterze oraz znak zachety: ˛ >>> Od tej chwili możemy wpisywać instrukcje oraz wyrażenia jezyka ˛ Python, np. >>> 1 + 2 Po naciśnieciu ˛ klawisza <Enter> na ekranie zobaczymy obliczony przez interpreter wynik wyrażenia 1 + 2 oraz w nastepnej ˛ linii ponownie znak zachety. ˛ dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 15 / 21 Używanie interpretera Pythona Importowanie modułów Aby móc korzystać z funkcji matematycznych należy zaimportować odpowiedni moduł: >>> import math Od tej chwili możemy używać funkcji zdefiniowanych w tym module, np. >>> math.sqrt(2) Po naciśnieciu ˛ klawisza <Enter> na ekranie zobaczymy obliczony przez funkcje˛ math.sqrt pierwiastek z liczby 2 oraz w nastepnej ˛ linii ponownie znak zachety. ˛ Aby uzyskać pomoc na temat funkcji i stałych zdefiniowanych w module math należy użyć funkcji help: >>> help(math) dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 16 / 21 Używanie interpretera Pythona Przykład Wykorzystanie funkcji print >>> print("Witajcie studenci!") Witajcie studenci! >>> >>> print(2 + 3) 5 >>> print("2 + 3 = ", 2 + 3) 2 + 3 = 5 >>> print(2, "+", 3, "=", 2 + 3) 2 + 3 = 5 >>> dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 17 / 21 Podstawy jezyka ˛ Python Typy liczbowe W jezyku ˛ Python dostepne ˛ sa˛ nastepuj ˛ ace ˛ rodzaje liczb: całkowite (0, 1, -2, itd.) – typ int boolowskie (tylko wartości False oraz True) – typ bool zmiennoprzecinkowe (3.14, 2.718, itd.) – typ float zespolone (2+3j, 1j, 1+0j) – typ complex Operatory arytmetyczne: dodawanie + oraz odejmowanie − mnożenie ∗, dzielenie /, dzielenie całkowite // reszta z dzielenia całkowitego % ∗∗ potegowanie ˛ Operatory z operandami typów mieszanych przekształcaja˛ operandy boolowskie w całkowite, zmiennoprzecinkowe lub zespolone operandy całkowite w zmiennoprzecinkowe lub zespolone operandy zmiennoprzecinkowe w zespolone. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 18 / 21 Podstawy jezyka ˛ Python Typy liczbowe Typ obiektu można pobrać za pomoca˛ wbudowanej funkcji type. Przykłady >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> type(16) type("Hello") type("16") type(3.14) type(2∗∗ 64) type(1 > 0) type(False) type(True) type(None) type(1 + 2j) dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 19 / 21 Podstawy jezyka ˛ Python Priorytety operatorów Nawiasy maja˛ najwyższy priorytet. Sa˛ używane do wymuszenia obliczania wartości wyrażenia w żadanej ˛ kolejności, Potegowanie ˛ ma kolejny najwyższy priorytet. Mnożenie, dzielenie, dzielenie całkowite i reszta z dzielenia maja˛ ten sam priorytet, który jest wyższy niż dodawanie i odejmowanie, które również maja˛ ten sam priorytet. Operatory o tym samym priorytecie sa˛ obliczane od lewej do prawej. W algebrze mówimy, że sa˛ lewostronnie łaczne. ˛ Wyjatkiem ˛ (z powodów historycznych) jest operator potegowania, ˛ który jest prawostronnie łaczny. ˛ dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 20 / 21 Podstawy jezyka ˛ Python Operatory porównania Python oferuje standardowy zestaw binarnych operatorów porównania charakteryzujacych ˛ sie˛ oczekiwana˛ semantyka: ˛ < (mniejszy niż), > (wiekszy ˛ niż), == (równy), != (różny <= (mniejszy lub równy), >= (wiekszy ˛ lub równy), Wymienione operatory porównuja˛ wartości obiektów, do których odniesienia zostały wskazane w operatorze. Wynikiem porównania jest wartość typu bool: False albo True. Porównania, które nie maja˛ sensu, bed ˛ a˛ powodowały zgłoszenie wyjatku. ˛ dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 3 października 2012 21 / 21