PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne jest odpowiednie przetworzenie jego kodu źródłowego: KOMPILKACJA kod źródłowy jest tłumaczony do postaci języka maszynowego; INTERPERETACJA kod źródłowy jest na bieżąco tłumaczony i wykonywany przez dodatkowy program zwany interpreterem. KOD ŹRÓDŁOWY (PROGRAM) DANE WEJŚCIOWE INTERPRETER wykonany przez komputer DANE WYJŚCIOWE Python jest to interpretowany język programowania wysokiego poziomu Twórca: Guido van Rossum (1990) Nazwany w ślady za programem TV BBC Latający cyrk Monty Pythona Wartość (nie nazwy) posiadają typ. Jest to język z typami dynamicznymi. Posiada wbudowane abstrakcyjne typy danych: o listy, o krotki przechowują stałe wartości o różnych typach danych, o zbiory, o słowniki. Możliwe programowanie: o obiektowe, o strukturalne, o funkcyjne. Cecha wyróżniająca: stosowanie wcięć do wydzielania bloków kodu Aby móc korzystać z funkcji matematycznych należy zaimportować odpowiedni moduł: >>>import.math np. math.sqrt(2) pierwiastek z liczby 2 Aby uzyskać pomoc na temat funkcji i stałych zdefiniowanych w module math: >>>help(math) Dostępne są następujące rodzaje liczb: o całkowite (0, 1, -2) typ int, o boolowskie (False, True) typ bool, o zmiennoprzecinkowe (3.14; 2.718) typ float, o zespolone (2+3j, 1j, 1+0j) typ complex. Operatory arytmetyczne: o dodawanie +, odejmowanie -, o mnożenie *, dzielenie /, dzielenie całkowite //,
o reszta z dzielenia całkowitego %, o potęgowanie **. Typy liczbowe typ obiektu można pobrać za pomocą funkcji type np. type(16), type(2**64), type(1+2j) PRIORYTET: 1. Nawiasy mają najwyższy priorytet używane do wymuszania obliczenia wartości wyrażenia w żądanej kolejności; 2. Potęgowanie (prawostronnie łączny); 3. Mnożenia, dzielenie (całkowite), reszta z dzielenia; 4. Dodawanie, odejmowanie.!!! OPERATORY O TYM SAMYM PRIORYTECIE SĄ OBLICZANE OD LEWEJ DO PRAWEJ STRONY (LEWOSTRONNIE ŁĄCZNE). Standardowy zestaw binarnych operatorów porównania, charakteryzujących się oczekiwaną semantyką: o < (mniejszy niż), o > (większy niż), o = = (równy), o!= (różny), o <= (mniejszy równy), o >= (większy równy). Porównanie wartości obiektów, do których odniesienia zostały wskazane w operatorze. Wynik: wartość tupu bool. OBIEKTY abstrakcja danych Każda dana jest reprezentowana przez obiekt lub przez relację między obiektami. Każdy obiekt ma: o tożsamość, o typ, o wartość. Od chwili jego utworzenia, tożsamość nigdy się nie zmienia. Porównanie tożsamości dwóch obiektów operator: is Funkcja id zwraca wartość całkowitą, reprezentującą tożsamość obiektu adres obiektu przekształcony do postaci liczbowej TYP określa zbiór atrybutów i operacji, które można wykonać na obiekcie i definiuje zbiór dopuszczalnych wartości obiektu. nie może ulec zmianie, można pobrać za pomocą funkcji type. ZMIENNA odniesienie do obiektu
aby ją utworzyć i nadać jej wartość, należy użyć instrukcji przypisania zmienna = wyrażenie może być przypisana jednocześnie wielu zmiennych a=b=c=0 możliwe są jednoczesne przypisania a, b, c=1, 2, 3 PRZYKŁAD: >>>a=3 >>>b=3 >>>id(a) >>>id(b) >>>a is b TRUE Ostatnio wydrukowane wyrażenie przypisywane jest do zmiennej _ PRZYKŁAD 2 >>>53.4*3.56 11.74799999999 >>>round(_, 2) 11.75 Zmienna ta powinna być traktowana jako zmienna tylko do odczytu. IDENTYFIKATOR (nazwy ZMIENNYCH, FUNKCJI, KLAS)\ To dowolny ciąg składający się z liter cyfr oraz znaków podkreślenia zaczynających się od litery/znaku podkreślenia. ZAPIS: plik.py INSTRUKCE ITERACYJNE FOR (dla) używana do iterowania po elementach sekwencji lub innego obiektu iterowanego for zmienna in wyrażenie: blokinstrukcji blok instrukcji ciąg instrukcji, które umieszczone są w kolejnych liniach, przy czym każda linia jest wcięta w stosunku do linii zaczynającej się od for o tę samą liczbę spacji. RANGE uniwersalna funkcja tworząc skończony ciąg arytmetyczny Można wywołać z 1, 2, 3 argumentami.
>>>list(range(6)) 0, 1, 2, 3, 4, 5 MODUŁ TURTLE degress() jednostki miary kąta na stopnie, radians() jednostki miary kąta na radiany, reset() czyści ekran, pióro na środku i przypisuje zmiennym ich domyślne wartości, clear() czyści ekran, tracer(znacznik) włącza/wyłącza śledzenie, forward(odległość) ruch naprzód o odległość kroków, backward(odległość) ruch wstecz o odległość kroków, left(kąt) obrót w lewo o kąt jednostek ( o ), degress(), radians() right(kąt) obrót w lewo o kąt jednostek ( o ), up() podnosi pióro (przerywa rysowanie), down() opuszcza pióro (rozpoczyna rysowanie), width(grubość) grubość linii, color(barwa) Przykłady kolorów: Lista wszystkich kolorów: http://www.tcl.tk/man/tcl8.5/tkcmd/colors.htm write(napis [,przesunięcie]), fill(znacznik) fill(1) rozpoczęcie rysowania ścieżki, fill(0) po zakończeniu, circle(promień [,rozciągłość]) część okręgu goto((x, y)) przechodzi do współrzędnych x, y. PRZYKŁADY RYSUNKÓW 1. TRÓJKĄT def triangle (size): for i in range(3): turtle.forward(size) turtle.left(120) turtle.setup()
main() triangle(100) Komentarz [k1]: Dzięki temu poleceniu rysunek nie zniknie po jego zakończeniu 2. SZEŚCIOKĄT for i in range(6): turtle.left(60) turtle.forward(150) 3. CZERWONA GWIAZDKA 5-CIO RAMIENNA turtle.setup() turtle.color( red ) turtle.begin_fill() for i in range(5) turtle.forward(150) turtle.right(144) turtle.end_fill() main() Komentarz [k2]: Powoduje zamalowanie figury Komentarz [k3]: Funkcja skończony ciąg arytmetyczny Komentarz [k4]: 180/5=36 180-36=144 4. BIAŁA GWIAZDA for i in range(5): turtle.forward(20); turtle.left(60) turtle.forward(20); turtle.right(120) turtle.forward(20); turtle.left(60) turtle.forward(20); turtle.left(72) Komentarz [k5]: 360/5 5. ROZGWIAŻDŻENIE for i in range(1, 21): turtle.fd(10*i); turtle.bk(10*i); turtle.rt(360/20) 6. KOPERTA Komentarz [k6]: fd=forward Komentarz [k7]: bk=backward Komentarz [k8]: rt=right import math bok=100 polowaprzek=0.5*math.sqrt(2*(bok**2)) turtle.lt(90)
main() turtle.rt(135) turtle.rt(90) turtle.lt(135) turtle.lt(135) turtle.rt(90) turtle.lt(135) turtle.rt(135) turtle.rt(90) turtle.rt(45) 7. PTASZEK turtle.lt(30) turtle.fd(20); turtle.bk(20) turtle.rt(60) turtle.fd(20); turtle.bk(20) turtle.lt(30) main() Komentarz [k9]: α Komentarz [k10]: β Komentarz [k11]: α 8. SKOKI for i in range(10): turtle.fd(10) turtle.pu() turtle.fd(10) turtle.pd() 9. SNAKE for i in range(5): turtle.fd(10); turtle.lt(90) turtle.fd(20); turtle.rt(90)
turtle.fd(10); turtle.rt(90) turtle.fd(20); turtle.lt(90)