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

Podobne dokumenty