Python podstawy programowania



Podobne dokumenty
Język Python. Język Python 1/35

Python. Wprowadzenie. Jolanta Bachan

Środowisko programisty

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Podstawy programowania w Pythonie

Wykresy i interfejsy użytkownika

Środowisko programisty

System operacyjny Linux

Podstawy programowania w Pythonie

Język Python (2) Język Python (2) 1/36

Języki i metody programowania

Algorytmika i Programowanie VBA 1 - podstawy

rozdział 4: ZMIENNE I INSTRUKCJE

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7

Kurs rozszerzony języka Python

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Przegląd języka Python. Łukasz Anwajler

2 Przygotował: mgr inż. Maciej Lasota

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python

JAVA?? to proste!! Autor: wojtekb111111

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

1 Podstawy c++ w pigułce.

Python wstęp. Michał Bereta

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Liczby losowe i pętla while w języku Python

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Algorytmy i struktury danych

Podstawy programowania skrót z wykładów:

Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36

Metody numeryczne Laboratorium 2

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Pętla for. Wynik działania programu:

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Cw.12 JAVAScript w dokumentach HTML

Podstawy Programowania Podstawowa składnia języka C++

Kurs języka Python. Wykład 11. Marcin Młotkowski. 4 stycznia Kontrola poprawności podczas biegu programu. 2 Testowanie oprogramowania

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Zmienne, stałe i operatory

Kurs rozszerzony języka Python

Języki skryptowe w programie Plans

Programowanie robota mobilnego E-puck w języku Python

Wstęp do programowania

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie w języku Python. Grażyna Koba

Wstęp do programowania

Wstęp do Informatyki dla bioinformatyków

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

Warsztaty dla nauczycieli

Programowanie w Ruby

Podstawy. Jan Koprowski Politechnika Gdańska, FTiMS Informatyka Stosowana

Algorytmy i struktury danych

Podstawy programowania w Pythonie

JAVAScript w dokumentach HTML - przypomnienie

Języki programowania zasady ich tworzenia

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

System operacyjny Linux

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Podstawy programowania C. dr. Krystyna Łapin

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

PROGRAMOWANIE W JĘZYKU PYTHON

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

JAVAScript w dokumentach HTML (1)

Plan. krótkie opisy modułów. 1 Uwagi na temat wydajności CPython a. 2 Podstawowe techniki poprawiające wydajność obliczeniową

1 Podstawy c++ w pigułce.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

PowerShell. Sławomir Wawrzyniak

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Pascal - wprowadzenie

Wstęp do programowania

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Trochę o plikach wsadowych (Windows)

Podstawy programowania w Pythonie

Administracja i programowanie pod Microsoft SQL Server 2000

Technologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python.

Powłoka bash. Kurs systemu Unix 1

Programowanie komputerowe. Zajęcia 1

Język C - podstawowe informacje

Transkrypt:

Python podstawy programowania Krzysztof Katarzyński Centrum Astronomii UMK W roku 1945 rozpętał się pokój. Latajacy Cyrk Monty Pythona

Program w Pythonie jako plik tekstowy Konsola tekstowa Pythona umożliwia napisanie właściwie dowolnego programu jednak nie jest to efektywny sposób programowania. Konsoli powinno się używać jedynie do pisania prostych programów o długości nie większej niż kilkadziesiat linii. Poleceń wprowadzonych w konsoli nie da się łatwo automatycznie zapisywać. Jeżeli zdecydujemy się na używanie konsoli to powinniśmy zainteresować się projektem ipython, który dostarcza konsoli pythonowej o znacznie rozszerzonych możliwościach. Dużo bardziej efektywnym sposobem pisania programów w Pythonie jest tworzenie plików tekstowych, które zawieraja wszystkie procedury i polecenia naszego programu. Tworzy się zwykle plik o rozszerzeniu.py, (np. moj_program.py) który uruchamiamy poleceniem: python moj_program. py Krzysztof Katarzyński, CA UMK Podstawy, strona 2/34

1 Komentarz w jednej linii Komentarz rozpoczyna się znakiem krzyżyka (#), który nie jest częścia ciagu znakowego, i kończy się wraz z końcem wiersza. Jeśli komentarz na poczatku pliku źródłowego pasuje do wyrażenia regularnego coding[=:]\\s*([\\w-_.]+), wówczas jest on traktowany jako deklaracja kodowania. Pierwsza grupa w tym wyrażeniu określa kodowanie pliku. Zalecane formy tych wyrażeń to: # -*- coding : <nazwa - kodowania > -*- na przykład: # kodowanie UTF -8 # przebyta droga s = 125.3 # km # czas podr óży t = 2.1 # godziny # ś rednia prę dko ść v = s/t # km/h print v Krzysztof Katarzyński, CA UMK Podstawy, strona 3/34

2 Komentarz wieloliniowy W Pythonie można wprowadzać komentarze, które zawarte sa w kilku liniach tekstu. Robimy to stosujac """ lub na poczatku i końcu komentarza: """ to jest program, który nic sensownego nie robi pokazuje jedynie jak tworzy ć wieloliniowe komentarze w Pythone """ print 2+2 kolejny komentarz, który wymaga napisania kilku linii wyjasnie ń print 3*3 Krzysztof Katarzyński, CA UMK Podstawy, strona 4/34

Łaczenie linii W Pythonie dość często zachodzi konieczność łaczenia linii albo inaczej mówiac, przełamania linii. Możemy wykonać tzw. jawne łaczenie przy pomocy znaku \ na końcu linii: if 1900 < rok < 2100 and 1 <= miesiac <= 12 \ and 1 <= dzien <= 31 and 0 <= godzina < 24 \ and 0 <= minuta < 60 and 0 <= sekunda < 60: # wygl ąda na poprawn ą dat ę return 1 albo tzw. niejawnego łaczenia, na przykład: mn = [ Januari, Februari, Maart, # to są holenderskie April, Mei, Juni, # nazwy wszystkich Juli, Augustus, September,# miesi ęcy w Oktober, November, December ] # roku Niejawnie złaczone wiersze moga zawierać komentarze. Wcięcia w wierszach, będacych kontynuacja pierwszego z nich, nie sa istotne. Wśród złaczonych w ten sposób wierszy dopuszczalne sa również wiersze puste. Krzysztof Katarzyński, CA UMK Podstawy, strona 5/34

3 Wcięcia podstawa programowania w Pythonie Funkcje w Pythonie nie posiadaja sprecyzowanych poczatków i końców oraz żadnych nawiasów służacych do zaznaczania, gdzie funkcja się zaczyna, a gdzie kończy. Jedynym separatorem jest dwukropek ( ) i wcięcia kodu. #!/ usr / bin / env python # definicja przyk ł adowej funkcji def fun (x, y): a=x* y # pierwsza linia okre śla wci ę cie b=y- x # druga i każda nast ę pna linia return a* b # musi mie ć identyczne wci ę cie # w tym miejscu funkcja się koń czy # tu zaczyna się głó wny program # polecenia głó wnego programu print fun (3,4) print fun (7,1) Krzysztof Katarzyński, CA UMK Podstawy, strona 6/34

4 Częsty bład czyli nierówne wcięcia Nierówne wcięcia: #!/ usr / bin / env python def fun (x,y): a=x*y b=y-x return a*b print fun (3,4) print fun (7,1) wygeneruja bład przy uruchamianiu programu: File " wciecia2.py", line 6 b=y-x ^ IndentationError : unexpected indent Krzysztof Katarzyński, CA UMK Podstawy, strona 7/34

5 Inne bloki programu Wcięcia określaja zakres różnych bloków programu: #!/ usr / bin / env python # wci ę cia stosuje się do okre ś lenia # zasi ęgu ró wnie ż innych blok ów # programu np. pę tli for for i in range (5): print i a=i **2 print a print 5- i print "\n" # czy warunku if if a == 16: print " ostatecznie a=", a print " i to już koniec " # każdy blok może mie ć inny # zakres wci ę cia Krzysztof Katarzyński, CA UMK Podstawy, strona 8/34

6 Wiele wcięć równocześnie Wcięcia określaja strukturę funkcji oraz całego programu: #!/ usr / bin / env python # funkcja def silnia (x): y=1 # wci ę cie okre ś laj ące # zasi ęg funkcji for i in range (x): y=y*(i+1) # wci ę cie okre ś laj ące print i, y # zasi ęg pę tli for return y # wynik koń cowy poza pętlą for # ale wewn ą trz funkcji # program głó wny poza funkcj ą print " s=", silnia (3) print " s=", silnia (7) print " s=", silnia (12) Krzysztof Katarzyński, CA UMK Podstawy, strona 9/34

7 Wiele wcięć równocześnie cd. #!/ usr / bin / env python # funkcja def fun (x): if x < 10: # dobrym zwyczajem jest aby dx = 1 # wci ę cia mia ły ten sam zasi ęg if x > 10: # w podobnych fragmentach programu dx = 5 if x > 100: dx = 10 # to jest poprawne aczkolwiek mało # czytelne for y in range (0, x, dx ): print y, print "\n" # program głó wny poza funkcj ą fun (7) fun (15) fun (120) Ze względu na odmienne zachowanie się edytorów tekstu w środowiskach różnych od środowiska systemu Unix, nie należy w obrębie jednego pliku używać do tworzenia wcięć jednocześnie spacji i tabulacji. Krzysztof Katarzyński, CA UMK Podstawy, strona 10/34

Operatory Operatory stosowane w języku Python: arytmetyczne + * ** / // % bitowe & porównania < > <= >= ==!= <> Zapisy <> oraz!= stanowia alternatywne formy zapisu tego samego operatora. Zaleca się używanie!=, forma <> jest przestarzała. >>> 2.0**3.21 # pot ę gowanie 9.253505471242299 >>> 4**0.5 2.0 >>> 7.0 % 3.0 # dzielenie modulo, reszta z dzielenia 1.0 >>> 7.0 // 3.0 # dzielenie daj ące wynik cał kowity 2.0 Krzysztof Katarzyński, CA UMK Podstawy, strona 11/34

Przykład użycia operatorów porównania >>> 2==2. 0 # == por ó wnanie True # zawsze 2 razy znak = >>> 2 <=2.0 True >>> 2 >=2.0 True >>> 2! =2. 0 # negacja, czy jest r ó ż ne? False >>> 2 < >2.0 # negacja, stara wersja False >>> 2 <2.0 False >>> 2 >2.0 False Krzysztof Katarzyński, CA UMK Podstawy, strona 12/34

8 Operatory: and, or, is #!/ usr / bin / env python def slim (x, a, b): if x >= a and x <=b: print "x=", str (x)+", a="+ str (a)+", b="+ str (b) print " x - w zadanym limicie \ n" if x < a or x > b: print "x=", str (x)+", a="+ str (a)+", b="+ str (b) print " x - poza limitem \ n" if x is a: print "x=", str (x)+", a="+ str (a)+", b="+ str (b) print " x - ró wny dolnej granicy \ n" if x is b: print "x=", str (x)+", a="+ str (a)+", b="+ str (b) print " x - ró wny gó rnej granicy \ n" slim (-1, -2, 3) slim (-3, -2, 5) slim (1, 1, 3) slim (3, 1, 3) and i, or lub, is jest Krzysztof Katarzyński, CA UMK Podstawy, strona 13/34

Rozgraniczniki Rozgraniczniki stosowane w języku Python: nawiasy ( ) [ ] { },. : ; = arytmetyczne += = *= /= //= %= **= bitowe «=»= &= = = >>> a=3 >>> a +=1 # ró wnowa żne a = a+1 >>> a 4 >>> a -=1 # ró wnowa żne a = a -1 >>> a 3 >>> a *=2 # ró wnowa żne a = 2* a >>> a 6 >>> a /=2 # ró wnowa żne a = a/2 >>> a 3 >>> a +=( a -1) # jaki bę dzie wynik takiej operacji? Krzysztof Katarzyński, CA UMK Podstawy, strona 14/34

Słowa kluczowe Następujace identyfikatory sa używane jako słowa zarezerwowane: and del for is raise assert elif from lambda return break else global not try class except if or while continue exec import pass yield def finally in print Sa to tzw. słowa kluczowe, które nie moga być używane jako nazwy zmiennych, funkcji czy klas tworzonych przez programistę. >>> if =3 # próba utworzenia zmiennej o nazwie if File " <stdin >", line 1 if =3 ^ SyntaxError : invalid syntax Wiele słów kluczowych to tak zwane instrukcje proste. Krzysztof Katarzyński, CA UMK Podstawy, strona 15/34

Opis wybranych instrukcji prostych pass wykonanie tej instrukcji nie powoduje żadnych skutków, przydatna jest w roli wypełniacza, jeśli składnia wymaga obecności instrukcji, lecz nie jest potrzebne wykonanie żadnego kodu. >>> def f( x): pass # funkcja, która nic nie robi, zosta ła... # zdefiniowana aby zaprezentowa ć dzia ł anie >>> type ( f) # funkcji wbudowanej type <type function > del usuwanie całych zmiennych albo ich fragmentów >>> a=3 >>> print a 3 >>> del (a) >>> print a Traceback ( most recent call last ): File " <stdin >", line 1, in <module > NameError : name a is not defined Krzysztof Katarzyński, CA UMK Podstawy, strona 16/34

Przykład użycia del usuwanie elementu listy przy pomocy del: >>> s= list (" 12345 ") # przyk ł adowa lista >>> s [ 1, 2, 3, 4, 5 ] >>> del ( s [2]) # usuwamy trzeci element >>> s [ 1, 2, 4, 5 ] >>> del ( s) # usuwamy całą list ę >>> s [1] Traceback ( most recent call last ): File " <stdin >", line 1, in <module > NameError : name s is not defined nie da się użyć del na ciagu typu tuple >>> t = tuple (" 12345 ") >>> t ( 1, 2, 3, 4, 5 ) >>> del (t [3]) Traceback ( most recent call last ): File " <stdin >", line 1, in <module > TypeError : tuple object doesn t support item deletion Krzysztof Katarzyński, CA UMK Podstawy, strona 17/34

Przykład użycia del cd. del nie pozwoli usunać znaku z ciagu znaków >>> s=" sł owo kluczowe " >>> del (s [3]) Traceback ( most recent call last ): File " <stdin >", line 1, in <module > TypeError : str object doesn t support item deletion ale pozwoli usunać cała funkcje: >>> def inv ( x): print 1/ x # przyk ł adowa funkcja... >>> >>> inv (4.0) # sprawdzamy jak dzia ła 0.25 >>> del ( inv ) # i ją usuwamy >>> inv (4.0) # teraz wyst ąpi błąd Traceback ( most recent call last ): File " <stdin >", line 1, in <module > NameError : name inv is not defined Krzysztof Katarzyński, CA UMK Podstawy, strona 18/34

9 Instrukcja prosta print #!/ usr / bin / env python # przyk ł adowe zmienne c=3 # cał kowita r =5.7654 # rzeczywista d =1.234 e+9 # duża rzeczywista z=" ciąg znak ów" # tekstowa s= list (" 123456 ") # lista znak ów x= complex (3,7) # zespolona print x # wypisuje zmienn ą print r, # wypisuje bez ł amania linii na końcu print d print c, r, z, s # kilka róż nych zmiennych # w jednej linii print # pusta linia print " liczba cał kowita =", c # z opisem print " liczba cał kowita =" + str ( c) # alternatywny spos ób Krzysztof Katarzyński, CA UMK Podstawy, strona 19/34

10 print formatowanie #!/ usr / bin / env python # przyk ł adowe zmienne c =356 # cał kowita r =5.7654 # rzeczywista d =1.234 e+9 # duża rzeczywista z=u" ciąg znak ów" # tekstowa s= list (" 123456 ") # lista znak ów x= complex (3.12,7.24) # zespolona # formatowanie liczb print " c=% d" % c # cał kowita print " r=% d" % r # rzeczywista jako cał kowita print " c =%05 d" % c # cał kowita 5 znak ów, dope ł nienie 0 print " r =%5.3 f" % r # rzeczywista 5 znak ów, 3 po przecinku print " d =%4.2 e" % d # rzeczywista 4 znaki, 2 po przecinku # formatowanie liczb zespolonych print "c =%4.2 f %4.2 fj" % (x.real, x. imag ) # formatowanie ciągów znakowych print " z=% s" % z # ciąg znak ów print " z=% s" % z [0:4] # fragment ciągu print " z=% c" % z [2] # jeden znak Krzysztof Katarzyński, CA UMK Podstawy, strona 20/34

print formatowanie cd. Ogólne zasady formatowania w przypadku pojedynczej zmiennej x: print " dowolny napis % f dowolny napis " % x lub kilku zmiennych równocześnie: print " napis % f napis % f napis % f napis " % (x, y, z) Oczywiście nie ma konieczności umieszczania napisów i dodatkowych komentarzy a formaty i typy zmiennych moga być dowolnie łaczone. Należy pamiętać, że ciag znaków określajacy format oraz wypisywane zmienne sa rozgraniczone znakiem %. Krzysztof Katarzyński, CA UMK Podstawy, strona 21/34

Instrukcja prosta break Instrukcja break może się pojawić tylko w miejscu, które składniowo jest zagnieżdżone w pętli for lub while, jednak nie bezpośrednio w zagnieżdżonej definicji klasy lub funkcji. Wykonanie instrukcji break powoduje przerwanie wykonywania najściślej otaczajacej ja pętli, z pominięciem występujacej w niej ew. klauzuli else. Jeśli pętla for zostanie przerwana przez wykonanie instrukcji break, zmienna sterujaca pętli zachowuje swa bieżac a wartość po jej opuszczeniu. Krzysztof Katarzyński, CA UMK Podstawy, strona 22/34

11 Kolejny przykład użycia break #!/ usr / bin / env python # break w pę tli for for i in range (10): print i if i > 5: # warunek, który break # uruchamia break print # pusta linia odst ępu # break w pę tli while i=0 while 2 >1: # pę tla niesko ń czona print i i += 1 if i > 7: # warunek, który break # uruchamia break # inny przyk ład for i in range (15): x = 0.1* i y = (0.1* i )**2 if y > x: break print x, y Krzysztof Katarzyński, CA UMK Podstawy, strona 23/34

12 Przykład użycia break Wyszukiwanie liczb pierwszych: #!/ usr / bin / env python for n in range (2, 1000): for x in range (2, n): if n % x == 0: print n, =, x, *, n/x break else : # pę tla może mie ć warunek else print n, liczba pierwsza Krzysztof Katarzyński, CA UMK Podstawy, strona 24/34

13 Instrukcja prosta continue Instrukcja continue powoduje rozpoczęcie przetwarzania pętli od poczatku, innym słowy przeskoczenie części programu, przykład: #!/ usr / bin / env python while True : s = raw_input (" podaj nazw ę: ") if s == " koniec ": break if len (s) <= 3: print " nazwa jest za krótka!" continue # przechodzi do pocz ą tku # p ę tli ostatnia instrukcja # si ę nie wykona print " Twoja nazwa ", s Krzysztof Katarzyński, CA UMK Podstawy, strona 25/34

14 Instrukcja prosta import Instrukcja import służy do importowania dodatkowych modułów rozpowszechnianych razem z interpreterem Pythona albo napisanych przez użytkownika. Można importować całe moduły albo wybrane funkcje co jest szybsze i zabiera mniej pamięci. #!/ usr / bin / env python # importowanie sta łej pi z modu łu math from math import pi print pi # można zmienia ć nazwy importowanych funkcji from math import sin as sinus # as - jako print sinus ( pi) # można zaimportowa ć wszystkie funkcje i sta łe from math import * print cos ( pi) Krzysztof Katarzyński, CA UMK Podstawy, strona 26/34

15 Instrukcja prosta import cd. #!/ usr / bin / env python # można zaimportowa ć cały modu ł bezpo ś rednio import math # ale wtedy ka ż da funkcja czy procedura musi # by ć wywo ł ywana jak metoda klasy print math.pi, math. sin ( math.pi) # mo ż na zmienia ć nazwy importowanych modu ł ó w import math as m print m. log (m.e) # zalet ą tego rozwi ą zania jest to, ż e np. # liczba Eulera nie zostanie zast ą piona w # naszym programie przez ł adunek elektronu Krzysztof Katarzyński, CA UMK Podstawy, strona 27/34

16 Importowanie własnych modułów Przykładowy moduł: # przyk ł adowy modu ł zawieraj ący # zmienne i funkcje lc = 100 lr = 1.2345 lz = complex (3, 7) lt = list (" 12345 ") def f1(x): a = x +1.0 b = 1.0/ a return b def f2(x, y): r = (x **2 + y **2) return r **0.5 zapisany jako osobny plik z rozszerzeniem *.py, musi znajdować się w tym samym katalogu co program główny. Krzysztof Katarzyński, CA UMK Podstawy, strona 28/34

17 Importowanie własnych modułów cd. Wykorzystanie przykładowego modułu: #!/ usr / bin / env python # importujemy tylko wybrane elementy from modul import lc, f1 # jak widac mo ż na print lc # importowa ć wiele print f1 (3) # element ó w na raz # importujemy wszystko from modul import * print lr, lz, lt print f2 (3,4) Krzysztof Katarzyński, CA UMK Podstawy, strona 29/34

Katalog z naszymi modułami Często jest tak, że jeden moduł wykorzystywany może być przez kilka różnych programów. Wtedy nie ma sensu tworzyć osobnego pliku z tym modułem dla każdego z naszych programów (zakładajac, że programy te sa w różnych katalogach). Można w naszym programie podać gdzie interpreter Pythona powinien szukać dodatkowych modułów jeżeli nie może ich znaleźć w katalogach systemowych i w katalogu programu. Robimy to przy pomocy funkcji zawartej w module sys: import sys sys. path. append ("~/ python / moje_moduly ") Polecenie to dodaje dodatkowa tzw. ścieżkę do miejsc standardowo przeszukiwanych na dysku komputera. Krzysztof Katarzyński, CA UMK Podstawy, strona 30/34

18 Zmienne globalne i lokalne #!/ usr / bin / env python # zmienna globalna x = " xxx " # funkcja korzysta ze zmiennych globalnych # w przypadku gdy nie ma zdefiniowanych # zmiennych lokalnych o wymaganej nazwie def fun1 (y): return x+y print fun1 (" yyy "), fun1 (" zzz ") # jeż eli zmienna lokalna ma nazw ę tak ą sam ą # jak zmienna globalna to uż yta zostanie # zmienna lokalna def fun2 (y): x = " zzz " # zmienna lokalna return x+y print fun2 (" yyy "), fun2 (" zzz ") Krzysztof Katarzyński, CA UMK Podstawy, strona 31/34

19 Instrukcja prosta global Instrukcja global stanowi deklarację, która odnosi się do całego bieżacego bloku kodu (np. funkcji). Użycie jej jest informacja dla kompilatora, że wszystkie wymienione zmienne powinny być interpretowane jako globalne. Przypisywanie wartości do globalnych zmiennych byłoby bez instrukcji global niemożliwe, choć można korzystać globalnych zmiennych bez użycia tej instrukcji. #!/ usr / bin / env python # zmienna globalna x = " xxx " def fun1 (y): global x # nie tworzymy zmiennej lokalnej x = " zzz " # jedynie przypisujemy warto ść return x+y # do zmiennej globalnej x print fun1 (" yyy "), fun1 (" zzz ") print x # zmienna globalna ma już inn ą warto ść Krzysztof Katarzyński, CA UMK Podstawy, strona 32/34

Lista programów 1./python/komentarze.py 2./python/komentarze2.py 3./python/wciecia.py 4./python/wciecia2.py 5./python/wciecia3.py 6./python/wciecia4.py 7./python/wciecia5.py 8./python/operatory.py 9./python/print.py 10./python/print2.py 11./python/break.py 12./python/break2.py 13./python/continue.py 14./python/import.py 15./python/import2.py 16./python/modul.py 17./python/tmodul.py 18./python/global.py 19./python/global2.py Dodatkowo ćwiczenie B./python/orbita.py przedstawione zostało w osobnej prezentacji Krzysztof Katarzyński, CA UMK Podstawy, strona 33/34

Wszelkie prawa zastrzez one! Rozpowszechnianie oraz wykorzystywanie kursu i programów do niego dołaczonych, w całos ci lub fragmentach bez zgody autora jest zabronione!