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

Podobne dokumenty
Wstęp do programowania

Warsztaty dla nauczycieli

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

KURS WSPOMAGAJĄCY PRZYGOTOWANIA DO MATURY Z MATEMATYKI ZDAJ MATMĘ NA MAKSA. przyjmuje wartości większe od funkcji dokładnie w przedziale

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

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Wstęp do programowania

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

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

Liczby zespolone. x + 2 = 0.

Utworzenie funkcji użytkownika w Visual Basic

Podstawy programowania w Pythonie

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

Algorytmy i struktury danych

Wykresy i interfejsy użytkownika

Zapisujemy:. Dla jednoczesnego podania funkcji (sposobu przyporządkowania) oraz zbiorów i piszemy:.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Programowanie - wykład 4

4. Funkcje. Przykłady

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Programowanie w języku Python. Grażyna Koba

Matematyka z kluczem. Szkoła podstawowa nr 18 w Sosnowcu. Przedmiotowe zasady oceniania klasa 7

Proste programy w C++ zadania

Języki i metody programowania

PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY

Zad. 5: Układ równań liniowych liczb zespolonych

Cw.12 JAVAScript w dokumentach HTML

Elementy metod numerycznych - zajęcia 9

Liczby zespolone. Magdalena Nowak. 23 marca Uniwersytet Śląski

Matematyka liczby zespolone. Wykład 1

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Programowanie - instrukcje sterujące

1. LICZBY DZIAŁ Z PODRĘCZNIKA L.P. NaCoBeZu kryteria sukcesu w języku ucznia

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Opis założonych osiągnięć ucznia klasy ZSZ (od 2012r.)

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

WYMAGANIA NA POSZCZEGÓLNE OCENY MATEMATYKA KL.VII

Zad. 1 Liczba jest równa A B C D. Zad. 2 Liczba log16 jest równa A 3log2 + log8 B log4 + 2log3 C 3log4 log4 D log20 log4

Liczby. Wymagania programowe kl. VII. Dział

MATEMATYKA Przed próbną maturą. Sprawdzian 3. (poziom podstawowy) Rozwiązania zadań

Wymagania edukacyjne z matematyki w klasie VII szkoły podstawowej

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

JAVAScript w dokumentach HTML (2)

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

Część 4 życie programu

WSTĘP DO ANALIZY I ALGEBRY, MAT1460

Metody numeryczne Laboratorium 2

Pytania dla języka Python

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM PODSTAWOWY. Etapy rozwiązania zadania

Wprowadzenie do Python

3. FUNKCJA LINIOWA. gdzie ; ół,.

Matura próbna 2014 z matematyki-poziom podstawowy

Przedmiotowe zasady oceniania i wymagania edukacyjne z matematyki dla klasy drugiej gimnazjum

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

Wymagania edukacyjne z matematyki na poszczególne do klasy VII szkoły podstawowej na rok szkolny 2018/2019

Ćwiczenie 1. Wprowadzenie do programu Octave

ROZKŁAD MATERIAŁU NAUCZANIA KLASA 2, ZAKRES PODSTAWOWY

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

PYTANIA TEORETYCZNE Z MATEMATYKI

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

1. Liczby zespolone i

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA VII

PRZEDMIOTOWY SYSTEM OCENIANIA PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Pętle iteracyjne i decyzyjne

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

KRYTERIA OCENIANIA Z MATEMATYKI W OPARCIU O PODSTAWĘ PROGRAMOWĄ I PROGRAM NAUCZANIA MATEMATYKA 2001 DLA KLASY DRUGIEJ

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

ZAKRES PODSTAWOWY CZĘŚĆ II. Wyrażenia wymierne

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY MATEMATYKA KLASA 8 DZIAŁ 1. LICZBY I DZIAŁANIA

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE VIII

LUBELSKA PRÓBA PRZED MATURĄ 2017 poziom podstawowy M A T E M A T Y K A 28 LUTEGO Instrukcja dla zdającego Czas pracy: 170 minut

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Laboratorium nr 1. i 2.

Programowanie w Scilab

ALGEBRA Z GEOMETRIĄ ANALITYCZNĄ

Podstawowe struktury algebraiczne

1 Podstawy c++ w pigułce.

WHILE (wyrażenie) instrukcja;

Szkoła Podstawowa. Uczymy się dowodzić. Opracowała: Ewa Ślubowska.

Zad. 3: Układ równań liniowych

Wymagania edukacyjne z matematyki w XVIII Liceum Ogólnokształcącym w Krakowie, zakres podstawowy. Klasa druga.

ZESPÓŁ SZKÓŁ W OBRZYCKU

Wstęp do programowania

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY VII SZKOŁY PODSTAWOWEJ

A. fałszywa dla każdej liczby x.b. prawdziwa dla C. prawdziwa dla D. prawdziwa dla

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka sposobów.

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

WYRAŻENIA ALGEBRAICZNE

Tematy: zadania tematyczne

Transkrypt:

Wizualizacja danych Ćwiczenie 3 Python 3: Python 3: Funkcje, moduły i operacje na plikach Python Comprehension Jest to mechanizm służący do generowania kolekcji (lista, słownik, zbiór) na podstawie jednowierszowej definicji. Równoważne definicje zawsze można podać za pomocą pętli. Czasami zaś wystarczy przepisać na język Python definicję matematyczną zbioru. Możliwa składnia #Zamiast pisać w pętli lista = [] for element in zakres: if pewien_warunek_na(element): lista.append( Cos sie dzieje z: + element) #możemy zapisać w jednej linijce lista = [ Cos sie dzieje z: + element for element in zakres if pewien_warunek_na(element)] Mamy zdefiniowane zbiory: A={x 2 : x <0,9>} B={1, 3, 9, 27,, 3 5 } C={x: x A i x jest liczbą nieparzystą} W Python zapiszemy to: A=[x**2 for x in range(10)] B=[3**i for i in range(6)] C=[x for x in A if x % 2!= 0] print(a) print(b) print(c) #Chcemy uzyskać liczby parzyste z podanego zakresu

#Wersja z pętlą liczby=[1,2,3,4,5,6,7,8,9,10] lista=[] for i in liczby: if i % 2 == 0: lista.append(i) print("liczby parzyste uzyskane z wykorystaniem pętli") print(lista) #wersja z Python comprehension lista2=[i for i in liczby if i % 2 == 0] print(lista2) #Zagnieżdżanie #Zamiast pisać tak: lista=[] for i in [1, 2, 3]: for j in [4, 5, 6]: if i!= j: lista.append((i,j)) print(lista) #można to zrobić krócej lista2=[(i,j) for i in [1, 2, 3] for j in [4, 5, 6]] print(lista2) #Słowniki i zamiana klucza z wartością Zad. 1 skroty={"pzu": "Państwowy zakład Ubezpieczeń", "ZUS": "Zakład Ubezpieczeń Społecznych", "PKO": "Powszechna Kasa Oszczędności"} odwrocone={value: key for key, value in skroty.items()} print("oryginalny słownik") print(skroty) print("słownik odwrócony") print(odwrocone) Zdefiniuj następujące zbiory, wykorzystując Python comprehension: A={1/x: x <1,10>} B={1, 2, 4, 8,, 2 10 }

C={x: x B i x jest liczbą podzielną przez 4} Zad. 2 Wygeneruj losowo macierz 4x4 i wykorzystując Python Comprehension zdefiniuj listę, która będzie zawierała tylko elementy znajdujące się na przekątnej. Zad. 3 Utwórz słownik z produktami spożywczymi do kupienia. Klucz to niech będzie nazwa produktu a wartość - jednostka w jakiej się je kupuje (np. sztuki, kg itd.). Wykorzystaj Python Comprehension do zdefiniowania nowej listy, gdzie będą produkty, których wartość to sztuki. Funkcje W Pythonie możemy definiować własne funkcje, które będziemy traktować jak podprogramy albo jak funkcje w matlabie. Składnia: def nazwa_funkcji(arg_pozycyjny, arg_domyslny=wartosc, *arg_4, **arg_5): instrukcje return wartość Definicja instrukcji to instrukcja która tworzy obiekt. Funkcje możemy wywoływać z argumentami lub bez ale zawsze musimy używać nawiasów (nawet jak nie ma argumentów). Funkcja może zwracać jedną lub wiele wartości, które będą zwrócone jako krotka Chcemy zdefiniować funkcję, która będzie obliczać pierwiastki równania kwadratowego: Zad. 4 import math def row_kwadratowe(a, b, c): delta = b**2-4 * a * c if (delta < 0): print("brak pierwiastków") return -1 elif (delta == 0): print("jeden pierwiastek") x = (-b) / (2 * a) return x else: print("równanie ma dwa pierwiastki") x1= (- b - math.sqrt(delta)) / (2 * a) x2= (- b + math.sqrt(delta)) / (2 * a) return x1, x2 print(row_kwadratowe(6,1,3)) print(row_kwadratowe(1,2,1)) print(row_kwadratowe(1,4,1)) Zdefiniuj funkcję, która będzie badać monotoniczność funkcji liniowej:

y = a x + b Funkcja jest rosną ca gdy a>0 malejąca jeżeli a<0 stała gdy a=0 i w zależności od tego będzie wyświetlać odpowiedni komunikat Zad. 5 Napisz funkcję, która będzie sprawdzać czy dwie proste są równoległe czy prostopadłe: Proste dane równaniami y=a 1 x+b 1, y=a 2 x+b 2, są równolegle gdy a 1 =a 2 prostopadłe gdy a 1 a 2 =-1 #Definiujemy funkcje z wartościami domyślnymi import math Zad. 6 def dlugosc_odcinka(x1 = 0, y1 = 0, x2 = 0, y2 = 0): return math.sqrt((x2 - x1)**2 + (y2 - y1)**2) #wywołujemy dla wartości domyślnych print(dlugosc_odcinka()) #wywolujemy dla własnych podanych wartości #są to argumenty pozycjne czyli ważna jest kolejnosć podania wartości print(dlugosc_odcinka(1, 2, 3, 4)) #Wywolujemy funkcje podając mieszane wartości #Dwie pierwsze są interpretowane jako x1 i y1 jak podano w definicji funkcji print(dlugosc_odcinka(2, 2, y2 = 2, x2 = 1)) #wywołujemy funkcje pdoając wartości nie w kolejności print(dlugosc_odcinka(y2 = 5, x1 = 2, y1 = 2, x2 = 6)) #wywołujemy funkcję podając tylko dwa argumenty a reszta domyślne print(dlugosc_odcinka(x2 = 5, y2 = 5)) Zdefiniuj funkcję, która na podstawie równania okręgu w postaci kanonicznej zwróci długość promienia. Funkcja ma przyjmować argumenty domyślne: Równanie okręgu dane jest wzorem: (x-a) 2 +(y-b) 2 =r 2 gdzie (a,b) to środek okręgu a r to promień okręgu. Zad. 7

Zdefiniuj funkcję, która oblicza długość przeciwprostokątnej, wykorzystując twierdzenie pitagorasa. Proszę podać wartości domyślne dla funkcji Zad. 8 Zdefiniuj funkcję, która zwraca sumę dowolnego ciągu arytmetycznego. Funkcja niech przyjmuje jako parametry: a 1 (wartość początkowa), r (wielkość o ile rosną kolejne elementy) i ile_elementów (ile elementów ma sumować). Ponadto funkcja niech przyjmuje wartości domyślne: a 1 = 1, r=1, ile=10. #symbol * oznacza dowolną ilość argumentów przechowywanych w krotce Zad. 9 def ciag(* liczby): #jeżeli nie ma argumentów to if len(liczby) == 0: return 0.0 else: suma = 0.0 #sumujemy elementy ciągu for i in liczby: suma += i #zwracamy wartość sumy return suma #wywołanie gdy brak argumentów print(ciag()) #podajemy argumenty print(ciag(1,2,3,4,5,6,7,8)) Wykorzystując poprzedni przykład zdefiniuj funkcję, która będzie liczyć iloczyn elementów ciągu. # ** czyli dwie gwiazdki oznaczają że możemy użyć # dowolną ilość argumentów z kluczem def to_lubie(** rzeczy): for cos in rzeczy: print("to jest ") print(cos) print(" co lubie ") print(rzeczy[cos]) Zad. 10 to_lubie(slodycze="czekolada", rozrywka=["disco-polo", "moda na sukces"]) Napisz funkcję, która wykorzystuje symbol **. Funkcja ma przyjmować listę zakupów w postaci: klucz to nazwa produktu a wartość to ilość. Funkcja ma zliczyć ile jest wszystkich produktów w ogóle i zwracać tę wartość. Moduły i pakiety Żeby użyć funkcji matematycznych potrzebowaliśmy zaimportować plik math.

Taki plik nazywa się modułem i są tam zapisane po prostu kody w języku Python. Jeśli takich plików będziemy mieć kilka to możemy utworzyć z nich pakiet. Import modułów systemowych Jeden import modułu powinien być w jednej linii np. import sys można również zapisać import modułu w postaci: from math import * Import modułu zamieszczamy na początku pliku. Ewentualnie za komentarzami. Zaleca się następującą kolejność importów: biblioteki standardowe powiązane biblioteki zewnętrzne lokalne aplikacje/biblioteki Tworzenie swojego modułu Tworząc swój moduł piszemy funkcje i zapisujemy w pliku z rozszerzeniem.py Następnie dołączamy do nowego skryptu swój moduł używają instrukcji. Zawartość pliku litery, który będzie naszym modułem #plik litery def wyswietl(a): print(a) def dlugosc(a): return len(a) Teraz możemy już wykorzystać funkcje z modułu litery (to będzie nowy skrypt): import litery a = "Ala ma kota" litery.wyswietl(a) print(litery.dlugosc(a)) #wyświetla wszystkie zmienne oraz nazwy modułów, które się w nim znajdują print(dir(litery))

Tworzenie swojego pakietu Pakiet składa się z kilku modułów i najczęściej zapisywany w określonym folderze, gdzie nazwa folderu oznacza nazwę pakietu. Jeżeli chcemy stworzyć pakiet musimy utworzyć katalog dodać tam moduły a następnie dorzucić pliku o nazwie init.py, w którym powinien się znaleźć sposób importu plików. Dla stylu import pakiet.moduł plik zostaje pusty dla stylu from pakiet import * w pliku zapisujemy zmienną all która zawiera wszystkie moduły, które mogą być zaimportowane. Tworzymy jeszcze jeden moduł #piosenka.py def spiew(): print("la la la la la") def zespoly(): print("boysband") print("girl'n'dance") Tworzymy teraz katalog teksty i wrzucamy tam nasze moduły oraz edytujemy pliki init.py Rys. 1. Zawartość katalogu teksty, gdzie jest omawiany pakiet Zawartość pliku init.py Zad. 11 all = ["litery", "piosenka"] Stwórz pakiet liczby zespolone z dwoma modułami. Jeden moduł ma zawierać dwie funkcje, które z podanej liczby zespolonej zwracają część rzeczywistą i część urojoną Drugi moduł ma wykonywać dodawanie i odejmowanie dwóch liczb zespolonych. Przetestuj działanie tego pakietu. Zad. 12 Stwórz pakiet ciągi. Jeden moduł niech dotyczy działań i wzorów związanych z ciągami arytmetycznymi a drugi niech dotyczy działań i wzorów związanych z ciągami geometrycznymi.

Bibliografia [1] Jacqueline Kazil, [online], Katharine Jarmul, Data Wrangling with Python, wyd. 1, O Reilly, 2016, dostęp: 13 września 2017, Dostępny w Internecie: http://pdf.th7.cn/down/files/1603/data%20wrangling%20with%20python.pdf [2] Wes McKinney, [online], Python for Data Analysis, wyd. 1, O Reilly, 2013, dostęp: 13 września 2017, Był dostępny w Internecie: http://www3.canisius.edu/~yany/python/python4dataanalysis.pdf [3] Marian Mysior, Ćwiczenia z języka Python, Warszawa, Mikom, 2003