PYTHON
Transkrypt
PYTHON
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 import turtle def triangle (size): for i in range(3): turtle.forward(size) turtle.left(120) def main(): turtle.setup() triangle(100) turtle.done() main() Komentarz [k1]: Dzięki temu poleceniu rysunek nie zniknie po jego zakończeniu 2. SZEŚCIOKĄT import turtle for i in range(6): turtle.left(60) turtle.forward(150) turtle.done() 3. CZERWONA GWIAZDKA 5-CIO RAMIENNA import turtle def main(): turtle.setup() turtle.color(“red”) turtle.begin_fill() for i in range(5) turtle.forward(150) turtle.right(144) turtle.end_fill() turtle.done() 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 import turtle 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) turtle.done() Komentarz [k5]: 360/5 5. ROZGWIAŻDŻENIE import turtle for i in range(1, 21): turtle.fd(10*i); turtle.bk(10*i); turtle.rt(360/20) turtle.done() 6. KOPERTA import turtle import math def main(): bok=100 polowaPrzek=0.5*math.sqrt(2*(bok**2)) turtle.lt(90) Komentarz [k6]: fd=forward Komentarz [k7]: bk=backward Komentarz [k8]: rt=right turtle.fd(bok) turtle.rt(135) turtle.fd(polowaPrzek) turtle.rt(90) turtle.fd(polowaPrzek) turtle.lt(135) turtle.fd(bok) turtle.lt(135) turtle.fd(polowaPrzek) turtle.rt(90) turtle.fd(polowaPrzek) turtle.lt(135) turtle.fd(bok) turtle.rt(135) turtle.fd(polowaPrzek) turtle.rt(90) turtle.fd(polowaPrzek) turtle.rt(45) turtle.fd(bok) turtle.done() main() 7. PTASZEK import turtle def main(): turtle.lt(30) turtle.fd(20); turtle.bk(20) turtle.rt(60) turtle.fd(20); turtle.bk(20) turtle.lt(30) turtle.done() main() 8. SKOKI import turtle for i in range(10): turtle.fd(10) turtle.pu() turtle.fd(10) turtle.pd() turtle.done() 9. SNAKE import turtle for i in range(5): turtle.fd(10); turtle.lt(90) turtle.fd(20); turtle.rt(90) Komentarz [k9]: α Komentarz [k10]: β Komentarz [k11]: α turtle.fd(10); turtle.rt(90) turtle.fd(20); turtle.lt(90) turtle.done()