Podstawy programowania w Pythonie

Podobne dokumenty
Podstawy programowania w Pythonie

Wstęp do programowania

Języki i metody programowania

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

Podstawy programowania w Pythonie

rozdział 4: ZMIENNE I INSTRUKCJE

Pisząc kod w Pythonie na pewno już nie raz coś poszło nie tak i Shell wypisał komunikat o błędzie podobny do poniższego:

Podstawy programowania w Pythonie

Podstawy bioinformatyki 2017/18

Podstawy programowania w Pythonie

Języki i metody programowania

Podstawy programowania w Pythonie

Python. Wprowadzenie. Jolanta Bachan

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Programowanie w języku Python. Grażyna Koba

Wykład 4. Klasa List Kolejki Stosy Słowniki

Kurs rozszerzony języka Python

Wyjątki. try - except

Informatyka 2015/16 wykład 9. Pliki Sterowanie przebiegiem programu cz. 2. Dr inż. Witold Nocoń (p. 230)

Programowanie obiektowe

Warsztaty dla nauczycieli

Pętla for. Wynik działania programu:

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Zaawansowany kurs języka Python

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

Wprowadzenie do języka Python

Kurs rozszerzony języka Python

Wykład 8: Obsługa Wyjątków

Zaawansowany kurs języka Python

Środowisko programisty

Podstawy bioinformatyki 2017/18

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

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

Semantyka i Weryfikacja Programów - Laboratorium 3

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

Spis treści. Dekoratory. 1 Dekoratory 1.1 Zadanie Zadanie Zadanie Zadanie 4


Podstawy programowania. rozdział 8: WYJĄTKI. ostatnia modyfiaaja:

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

Podstawy programowania. Python wykład 6

Struktury danych: stos, kolejka, lista, drzewo

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

Programowanie obiektowe

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

Podstawy programowania w Pythonie

Podstawy Programowania ZŁOŻONE TYPY DANYCH, LOGIKA CYFROWA I MACIERZE

Kontenery i iteratory. Wykorzystanie kontenerów w praktyce.

Wstęp do Informatyki

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

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

Struktury. Przykład W8_1

Wykład 7 Abstrakcyjne typy danych słownik (lista symboli)

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

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

PHP: bloki kodu, tablice, obiekty i formularze

Listy, krotki, słowniki, funkcje

Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska

Programowanie i struktury danych 1 / 44

Wstęp do programowania 2

Python podstawy programowania

Podstawy Programowania

Język C++ wykład VIII

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

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

Struktury danych (I): kolejka, stos itp.

Programowanie w Sieci Internet. Python: Operacje z plikami oraz obsługa wyjątków

Ćwiczenie 3. Python 3: Python 3: Funkcje, moduły i operacje na plikach

Wykład 5. SQL praca z tabelami 2

Wykład 3 Składnia języka C# (cz. 2)

Algorytmy i struktury danych

Delphi Laboratorium 3

Języki programowania wysokiego poziomu. PHP cz.2.

Wstęp do programowania

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

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

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Podstawy i języki programowania

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

Wstęp do programowania

WSTĘP DO INFORMATYKI. Struktury liniowe

Zmienne i struktury dynamiczne

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

System operacyjny Linux

Dynamiczne struktury danych

Wstęp do programowania

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Algorytm. a programowanie -

Programowanie i projektowanie obiektowe

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Pobieranie argumentów wiersza polecenia

Wstęp do programowania

Pytania dla języka Python

Wprowadzenie do programowania

Wstęp do Informatyki dla bioinformatyków

Język Python (3) Język Python (3) 1/35

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Transkrypt:

Podstawy programowania w Pythonie Wykład 9 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 12 grudnia 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 1 / 25

Listy Używanie listy jako stosu Stos to liniowa struktura danych, w której dane dodawane sa tylko na szczyt stosu i tylko ze szczytu stosu sa pobierane. Jest to więc bufor typu LIFO (ang. Last-In-First-Out) ostatni na wejściu, pierwszy na wyjściu. Stosy sa stosowane w systemach komputerowych na wszystkich poziomach funkcjonowania systemów informatycznych. Użycie listy w roli stosu jest bardzo łatwe: Aby dodać element na szczyt stosu, należy użyć metody append(). Aby pobrać elementu ze szczytu stosu, należy użyć metody pop() bez podawania indeksu. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 2 / 25

Operacje na stosie Przykład >>> stos = [] # pusty stos >>> stos = [3, 4, 5] >>> stos.append(6) >>> stos [3, 4, 5, 6] >>> stos.pop() 6 >>> stos [3, 4, 5] >>> stos.pop() 5 >>> stos [3, 4] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 3 / 25

Listy Używanie listy jako kolejki Kolejka to liniowa struktura danych, w której dane dodawane sa na tylko końcu listy a pobierane sa tylko z poczatku listy. Jest to więc bufor typu FIFO (ang. First-In-First-Out) pierwszy na wejściu, pierwszy na wyjściu. Podobnie jak stosy, listy sa stosowane w systemach komputerowych na wszystkich poziomach funkcjonowania systemów informatycznych. Użycie listy w roli stosu jest bardzo łatwe: Aby dodać element do kolejki, należy użyć metody append(). Aby pobrać elementu z kolejki, należy użyć metody pop(0) dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 4 / 25

Operacje na kolejce Przykład >>> kolejka = [] # kolejka pusta >>> kolejka = ["Adam", "Tadeusz", "Michał"] >>> kolejka.append("eryk") # przybywa Eryk >>> kolejka.append("jan") # przybywa Jan >>> kolejka.pop(0) Adam >>> kolejka.pop(0) Tadeusz >>> kolejka [ Michał, Eryk, Jan ] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 5 / 25

Zbiory Podstawowe informacje Python posiada również typ danych dla zbiorów. Zbiór jest nieuporzadkowan a kolekcja nie zawierajac a duplikatów. Przy pomocy operatora in można testować przynależność elementu do zbioru. Zbiory umożliwiaja wykonywanie takich podstawowych operacji jak suma, przecięcie, różnica oraz różnica symetryczna. Aby utworzyć zbiór należy użyć nawiasów {} lub funkcji set() z argumentem będacym obiektem iterowalnym. Aby utworzyć zbiór pusty należy użyć funkcji set() bez argumentów a nie nawiasów {}, ponieważ konstrukcja {} tworzy pusty słownik. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 6 / 25

Zbiory Przykład (Podstawowe operacje na zbiorach) koszyk = {"gruszka", "kiwi", "gruszka", \ "cytryna", "kiwi", "banan", "mango"} print(koszyk) print("kiwi" in koszyk) print("mandarynka" in koszyk) a = set("abracadabra") b = set("alacazam") print("a =", a) print("b =", b) print("a - b =", a - b) print("a b =", a b) print("a & b =", a & b) print("a ^ b =", a ^ b) # różnica zbiorów # suma zbiorów # iloczyn zbiorów # różnica symetryczna dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 7 / 25

Zbiory Przykład (Podstawowe operacje na zbiorach) koszyk = {"gruszka", "kiwi", "gruszka", \ "cytryna", "kiwi", "banan", "mango"} print("\n", koszyk) lista = list(koszyk) print("\n", lista) lista.sort() # sortowanie listy print("\n", lista) koszyk.clear() for owoc in lista: koszyk.add(owoc) print("\n", koszyk, "\n") dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 8 / 25

Błędy i wyjatki Błędy składniowe Błędy składniowe, znane również jako błędy parsingu, sa być może najbardziej powszechnym rodzajem błędów, z którymi na poczatku maja do czynienia uczacy się języka Python. Rozważmy przykład: >>> while True print("hello") File "<stdin>", line 1 while True print("hello") ^ SyntaxError: invalid syntax >>> Parser powtarza na wyjściu błędny wiersz i wyświetla mała strzałkę, wskazujac a na najwcześniejszy punkt w wierszu gdzie znaleziono bład. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 9 / 25

Błędy i wyjatki Błędy składniowe Bład został wykryty w składniku poprzedzajacym strzałkę: w powyższym przykładzie, bład wykryty został na instrukcji wywołaniu funkcji print, z powodu braku znaku dwukropka (":") przed ta instrukcja. Sa również wyświetlane nazwa pliku i numer linii, aby wiedzieć, gdzie szukać błędu, w przypadku gdy na wejściu znajdował się skrypt. W przypadku wpisania błędnej instrukcji w interpreterze, wyświetlana jest zamiast nazwy pliku nazwa <stdin> oznaczajaca standardowe wejście. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 10 / 25

Błędy i wyjatki Błędy wykonania Nawet gdy wyrażenie jest składniowo poprawne, może spowodować bład podczas próby wykonania go. Błędy wykryte podczas wykonania nazywane sa wyjatkami i niekoniecznie musza zakończyć program. Wkrótce dowiemy się jak radzić sobie z nimi w programach Pythona. Większość wyjatków nie jest obsługiwana przez programy a objawiaja się one w komunikatach o błędzie, jak w poniższych przykładach. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 11 / 25

Błędy i wyjatki Przykład (Błędy wykonania) >>> 10 * 1/0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero >>> 4 * 3 + spam Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name spam is not defined >>> "2" + 2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Can't convert int object to str implicitly >>> dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 12 / 25

Błędy i wyjatki Obsługa wyjatków W poniższym przykładzie użytkownik podaje dane na wejściu aż do momentu, kiedy zostanie wprowadzona poprawna liczba całkowita. Przykład (Instrukcja try) while True: try: a = int(input("podaj liczbę całkowitą: ")) except ValueError: print("to co podałeś nie jest liczbą całkowitą") print("spróbuj ponownie") else: print("brawo! Podałeś liczbę o wartości", a) break dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 13 / 25

Błędy i wyjatki Działanie instrukcji try Na poczatku wykonywana jest klauzula try (czyli instrukcje pomiędzy try a except). Jeżeli nie pojawi się żaden wyjatek klauzula except jest pomijana i wykonanie instrukcji try uważa się za zakończone. Jeżeli podczas wykonywania klauzuli try pojawi się wyjatek, reszta niewykonanych instrukcji jest pomijana. Następnie, w zależności od tego, czy jego typ pasuje do typów wyjatków wymienionych w części except, wykonywany jest kod następujacy w tym bloku, a potem interpreter przechodzi do wykonywania instrukcji umieszczonych po całej instrukcji try. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 14 / 25

Błędy i wyjatki Działanie instrukcji try W przypadku pojawienia się wyjatku, który nie zostanie dopasowany do żadnego z wyjatków wymienionych w klauzuli except, zostaje on przekazany do do następnych, zewnętrznych instrukcji try. Jeżeli również tam nie zostanie znaleziony odpowiadajacy mu blok except, wyjatek ten nie zostanie wyłapany, stanie nieobsłużonym wyjatkiem, a wykonywanie programu zostanie wstrzymane wraz z pojawieniem się komunikatu podobnego do pokazanego uprzednio. Aby umożliwić obsługę wielu wyjatków, instrukcja try może posiadać więcej niż jedna klauzulę except. W takim przypadku, kod dla co najwyżej jednego wyjatku zostanie wykonany. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 15 / 25

Błędy i wyjatki Działanie instrukcji try Kody obsługi wyjatków wykonywane sa tylko dla wyjatków, które zostały zgłoszone w odpowiadajacej im części try, a nie w innych, sasiednich częściach except. Klauzula except może zawierać nazwy wielu wyjatków, podanych w formie listy otoczonej nawiasami okragłymi, np.... except (TypeError, NameError):... pass W ostatniej podanej klauzuli except można pominać nazwę lub nazwy wyjatków w celu obsłużenia dowolnego wyjatku. Można jej również użyć do wypisania komunikatu o błędzie i ponownie zgłosić wyłapany wyjatek (umożliwiajac w ten sposób funkcji wywołujacej wyłapanie zgłoszonego wyjatku). dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 16 / 25

Błędy i wyjatki Przykład import sys try: f = open("myfile.txt") s = f.readline() i = int(s.strip()) except IOError as err: print("błąd I/O error: {0}".format(err)) except ValueError: print("nie mogę przekształcić danej", end=" ") print("w liczbę całkowitą.") except: print("nieoczekiwany błąd:", sys.exc_info()[0]) raise dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 17 / 25

Błędy i wyjatki Działanie instrukcji try Instrukcja try...except wyposażona jest w opcjonalna klauzulę else, która musi pojawić się za wszystkimi podanymi blokami except. Można po niej umieścić kod, który zostanie wykonany, jeżeli nie zostanie zgłoszony wyjatek. Zastosowanie klauzuli else jest lepsze niż dodatkowy kod do klauzuli try, ponieważ unika się przypadkowego złapania wyjatku, który nie został zgłoszony przez kod chroniony przez klauzulę try. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 18 / 25

Błędy i wyjatki Przykład (Klauzula else w instrukcji try) def inputint(prompt): while True: try: a = int(input(prompt)) except: print("to nie jest liczba całkowita") print("spróbuj ponownie") else: return a dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 19 / 25

Błędy i wyjatki Przykład (Klauzula else w instrukcji try) def inputfloat(prompt): while True: try: a = float(input(prompt)) except: print("to nie jest liczba typu float") print("spróbuj ponownie") else: return a dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 20 / 25

Słowniki Podstawowe informacje Innym użytecznym typem danych w Pythonie jest słownik. Słowniki spotykane sa czasami w innych językach programowania jako pamięć asocjacyjna lub tablice asocjacyjne. W odróżnieniu od sekwencji, które sa indeksowane liczbami, słowniki indeksowane sa kluczami, które moga być obiektami dowolnego, niemutowalnego typu, np. napisy i liczby zawsze moga być kluczami. Listy niemutowalne również moga zostać użyte jako klucze, jeżeli zawieraja napisy, liczby lub listy niemutowalne. Nie można użyć zwykłych list jako kluczy, ponieważ można je modyfikować za pomoca metody append(). dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 21 / 25

Słowniki Podstawowe informacje Najlepiej wyobrazić sobie słownik jako nieuporzadkowany zbiór par klucz:wartość, z założeniem, że klucze sa unikalne (w jednym słowniku). Para nawiasów klamrowych tworzy pusty słownik: {}. Umieszczenie listy par klucz:wartość, oddzielonych przecinkami w tych nawiasach dodaje poczatkowe pary klucz:wartość do słownika. W ten sposób słowniki sa wyświetlane na standardowym wyjściu. Głównymi operacjami na słownikach sa dodawanie wartości z jakimś kluczem i pobieranie wartości opatrzonej podanym kluczem. Możliwe jest usuwanie pary klucz:wartość za pomoca instrukcji del. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 22 / 25

Słowniki Podstawowe informacje Jeżeli próbuje się przechować klucz, który istnieje już w słowniku, poprzednia wartość zwiazana z tym kluczem jest zapominana. Bład powstaje w wyniku próby pozyskania wartości spod klucza, który nie istnieje w słowniku. Metoda obiektu słownika keys() zwraca listę wszystkich kluczy używanych w słowniku, w porzadku losowym (jeżeli chce się uzyskać posortowana listę kluczy, należy zastosować metodę sort() na tej liście). Aby sprawdzić obecność klucza k w słowniku d należy sprawdzić czy klucz k należy do zbioru kluczy słownika d: k in d.keys(). dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 23 / 25

Słowniki Przykład (Podstawowe operacje na słownikach) tel = {"jack": 4098, "sape": 4139} tel["guido"] = 4127 print(tel) print(tel["jack"]) del tel["sape"] tel["irv"] = 4127; print(tel) print("guido" in tel, "jack" not in tel) print(list(tel.keys())) print(sorted(tel.keys())) print(list(tel.values())) print(sorted(tel.values())) print(list(tel.items())) print(sorted(tel.items())) dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 24 / 25

Słowniki Przykład (Podstawowe operacje na słownikach) tel = {"jack": 4098, "sape": 4139} tel["guido"] = 4127 print(tel) try: print(tel["jack"]) except: print("brak klucza \"jack\"") try: del tel["jacek"] except: print("brak klucza \"jacek\"") print(tel) dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 12.12.2012 25 / 25