zajecia1
This commit is contained in:
commit
6ce80c7796
52
README.md
Normal file
52
README.md
Normal file
@ -0,0 +1,52 @@
|
||||
# Programowanie w pythonie
|
||||
|
||||
Materiały do zajęć Programowanie w Pythonie prowadzone na Wydziale Matematyki i Informatyki UAM w ramach studiów podyplomowych Przetwarzanie danych - Big Data. Kurs 2023/2024
|
||||
|
||||
|
||||
## Informacja o przedmiocie
|
||||
|
||||
Prowadzący: mgr inż. Jakub Pokrywka. Kontakt przez komunikator MS TEAMS lub mailowy (jakub.pokrywka@amu.edu.pl).
|
||||
|
||||
|
||||
## Materiały do przedmiotu i jak się uczyć
|
||||
|
||||
Program jest wzorowany na https://github.com/tomekd/python . Spora cześć zadań się pokrywa, ale nie wszystkie.
|
||||
|
||||
Do nauki można wykorzystać wiele tutoriali internetowych python (w wersji python3). Pomocne mogą byc w szczególności:
|
||||
* Learning Python, 5th Edition by Lutz, Mark
|
||||
* [datacamp.com](https://datacamp.com): Portal DataCamp zawiera wiele interaktywych kursów nt. poszczególnych elementów języka Python (również dla języka R.).
|
||||
* [Python3: From None to Machine Learning](https://python.astrotech.io/)
|
||||
* [Real Python](https://realpython.com/)
|
||||
* [Dive in Python](https://diveintopython3.net/): Klasyczny kurs programowania w Pythonie.
|
||||
* [Filmy na Youtubie](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6): seria filmów od Microsoftu nt. podstaw programowania w Pythonie.
|
||||
|
||||
|
||||
## Ogólny Plan zajęć
|
||||
|
||||
- Zajęcia 1 - Wprowadzenie do python
|
||||
- Zajęcia 2 - Analiza danych
|
||||
|
||||
- Zajęcia 3 - Analiza danych, instalacja środowiska, IDE
|
||||
- Zajęcia 4 - Podstawy uczenia maszynowego w python
|
||||
|
||||
- Zajęcia 5 - Podstawy uczenia maszynowego w python, obługa maszyny wirtualnej
|
||||
- Zajęcia 6 - Tworzenie REST API
|
||||
|
||||
- Zajęcia 7 - Tworzenie REST API, testowanie aplikacji
|
||||
|
||||
|
||||
## Zaliczenie przedmiotu
|
||||
|
||||
- Projekt wykonujemy w grupach (1-3) osoby
|
||||
- Kod źródłowy powinien być umieszczony na git wraz z plikiem `environment.yml` przeznaczonym do instalacji środowiska dla conda
|
||||
- Prezentacja całego projektu powinna trwać 5-15 minut
|
||||
|
||||
Skala ocen
|
||||
- Należy wybrać zbiór danych (akceptacja grup oraz zbioru danych przez prowadzącego na pierwszych 17.11.21 lub drugich zajęciach 18.11.23), zaprezentować analizę tego zbioru danych (tabelki, wykresy, wnioski) w max 10 minut- zaliczenie na ocenę 3)
|
||||
- Należy wytrenować prosty model uczenia maszynowego (lub użyć gotowego modelu) i zaprezentować jego wyniki na zbiorze testowym. Jakość modelu nie będzie oceniana, ale powinien radzić sobie lepiej niż bardzo prosty model (klasa większościowa dla klasyfikacji lub średnia dla regresji)- zaliczenie na ocenę 4
|
||||
- Należy wystawić model z poprzedniego punktu w prostej aplikacji REST i zaprezentować jego działanie. Do aplikacji powininy być napisane 2-3 proste przypadki testowe- zaliczenie na llocenę 4.5
|
||||
- Należy udostępnić aplikację w sieci wydziałkowej 5
|
||||
|
||||
|
||||
W celu prezentacji projektu należy umowić sie z prowadzącym na prezentacje zdalną lub na wydziale (tylko w dni pracujące).
|
||||
Termin oddania zadań do koniec stycznia 2024. Dodatkowo można zgłosić prezentacje do końca 2023- wtedy prowadzący proponuje ocenę i zespół może albo ją przyjąć lub nie i spróbować jeszcze raz w styczniu.
|
65
zajecia1/.ipynb_checkpoints/1_prezentacja-checkpoint.ipynb
Normal file
65
zajecia1/.ipynb_checkpoints/1_prezentacja-checkpoint.ipynb
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Python- charakterystyka\n",
|
||||
"\n",
|
||||
"- język skryptowy ogólnego zastosowania\n",
|
||||
"- wysokopoziomowy\n",
|
||||
"- otwartoźródłowy\n",
|
||||
"- działa na platformach Linux, MacOS, Windows\n",
|
||||
"- obiektowy, ale wspiera też inne paradygmaty\n",
|
||||
"- język nterpretowany (zatem nie wymaga kompilacji)\n",
|
||||
"- Obecnie używa się python w wersji 3, która nie jest kompatybilna z wersją 2. Python 2 nie jest dalej rozwijany\n",
|
||||
"- Główną zaletą pythona jest czytelność kodu, co wynika z założenia że kod się cześćiej czyta niż pisze. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Zastosowania python\n",
|
||||
"- najbardziej popularny język do analizy danych obok R\n",
|
||||
"- najbardziej popularny język do uczenia maszynowego, w szczególności sieci neuronowych. Posiada biblioteki TensorFlow (wraz z wbudowanym Keras) oraz Pytorch\n",
|
||||
"- inne zastosowania naukowe\n",
|
||||
"- Tworzenie stron internetowych (Django) oraz mikroserwisów (Flask, FastApi, Bottle)\n",
|
||||
"- skrypty, automayzacja, utrzymanie serwerów"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Uruchamianie python\n",
|
||||
"\n",
|
||||
"- uruchamianie skryptu *.py\n",
|
||||
"- uruchamianie python w trybie interaktywnym przez interpreterze python lub ipython\n",
|
||||
"- uruchamianie skryptu + tryb interaktywny\n",
|
||||
"- jupyter notebook"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
2919
zajecia1/.ipynb_checkpoints/2_podstawy-checkpoint.ipynb
Normal file
2919
zajecia1/.ipynb_checkpoints/2_podstawy-checkpoint.ipynb
Normal file
File diff suppressed because it is too large
Load Diff
65
zajecia1/1_prezentacja.ipynb
Normal file
65
zajecia1/1_prezentacja.ipynb
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Python- charakterystyka\n",
|
||||
"\n",
|
||||
"- język skryptowy ogólnego zastosowania\n",
|
||||
"- wysokopoziomowy\n",
|
||||
"- otwartoźródłowy\n",
|
||||
"- działa na platformach Linux, MacOS, Windows\n",
|
||||
"- obiektowy, ale wspiera też inne paradygmaty\n",
|
||||
"- język nterpretowany (zatem nie wymaga kompilacji)\n",
|
||||
"- Obecnie używa się python w wersji 3, która nie jest kompatybilna z wersją 2. Python 2 nie jest dalej rozwijany\n",
|
||||
"- Główną zaletą pythona jest czytelność kodu, co wynika z założenia że kod się cześćiej czyta niż pisze. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Zastosowania python\n",
|
||||
"- najbardziej popularny język do analizy danych obok R\n",
|
||||
"- najbardziej popularny język do uczenia maszynowego, w szczególności sieci neuronowych. Posiada biblioteki TensorFlow (wraz z wbudowanym Keras) oraz Pytorch\n",
|
||||
"- inne zastosowania naukowe\n",
|
||||
"- Tworzenie stron internetowych (Django) oraz mikroserwisów (Flask, FastApi, Bottle)\n",
|
||||
"- skrypty, automayzacja, utrzymanie serwerów"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Uruchamianie python\n",
|
||||
"\n",
|
||||
"- uruchamianie skryptu *.py\n",
|
||||
"- uruchamianie python w trybie interaktywnym przez interpreterze python lub ipython\n",
|
||||
"- uruchamianie skryptu + tryb interaktywny\n",
|
||||
"- jupyter notebook"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
2919
zajecia1/2_podstawy.ipynb
Normal file
2919
zajecia1/2_podstawy.ipynb
Normal file
File diff suppressed because it is too large
Load Diff
8
zajecia1/zadania/zadanie_0.py
Normal file
8
zajecia1/zadania/zadanie_0.py
Normal file
@ -0,0 +1,8 @@
|
||||
"""
|
||||
Uruchom ten skrypt i sprawdź czy skrypt uruchomił się poprawnie.
|
||||
"""
|
||||
|
||||
|
||||
print("Ten napis powinien wyświetlić się w konsoli na dole.")
|
||||
|
||||
|
7
zajecia1/zadania/zadanie_1a.py
Normal file
7
zajecia1/zadania/zadanie_1a.py
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
"""
|
||||
* stwórz zmienną o nazwie `pi` i o wartości 3.14.
|
||||
* stwórz zmienną o nazwie `promien` i o wartości 12.
|
||||
* oblicz pole koła i przypisz wynik do zmniennej `pole`. P = pi * r ** 2
|
||||
* wyświetl wynik na ekran.
|
||||
"""
|
11
zajecia1/zadania/zadanie_1b.py
Normal file
11
zajecia1/zadania/zadanie_1b.py
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
"""
|
||||
Zamień typ zmiennych `a`, `b` i `c` na typy liczbowe (int lub float) i oblicz ich sumę.
|
||||
Wynik zapisz do zmiennej `wynik` i wyświetl go na ekranie
|
||||
"""
|
||||
|
||||
# zmienne do zadania
|
||||
a = "12"
|
||||
b = "35.5"
|
||||
c = True
|
||||
|
17
zajecia1/zadania/zadanie_1c.py
Normal file
17
zajecia1/zadania/zadanie_1c.py
Normal file
@ -0,0 +1,17 @@
|
||||
"""
|
||||
* Stwórz 2 zmiennie: firstname i surname, które będą zawierać Twoje imię i nazwisko.
|
||||
* Połącz te zmiennie w takim sposób, żeby było rozdzielone spacją i zapisz wynik do zmiennej fullname.
|
||||
* Wykorzystaj f-string i wyświetl na ekran zawartość zmiennej fullname, w taki sposób, żeby zawartość zmiennej była poprzedzona słowami "Nazywam się ".
|
||||
* Wyświetl sumaryczną długość zmiennych firstname i surname.
|
||||
"""
|
||||
|
||||
firstname = "Tomasz"
|
||||
surname = "Dwojak"
|
||||
|
||||
print(f"Nazywam się {firstname} {surname}.")
|
||||
|
||||
print(firstname.lower())
|
||||
|
||||
print("Nazywam się %s %s" % (firstname, surname))
|
||||
|
||||
|
14
zajecia1/zadania/zadanie_2a.py
Normal file
14
zajecia1/zadania/zadanie_2a.py
Normal file
@ -0,0 +1,14 @@
|
||||
"""
|
||||
Poniżej znajduje się lista `websites`.
|
||||
* Pod jakim indeksem znajduje się wartość 'pinterest.com'?
|
||||
* Zamień wartość piątego elementu na 'yahoo.com'.
|
||||
* Dodaj na koniec listy nowy element: 'bing.com'
|
||||
* Korzytając z indeksowania stwórz podlistę składającą się z elementów 'facebook.com', 'twitter.com'. Wynik przypisz do zmniennej `social_networks`.
|
||||
* Rozszerz listę `websites` o elementy z listy `polish_websites`.
|
||||
* Ile elementów liczy teraz lista `websites`?
|
||||
"""
|
||||
|
||||
|
||||
websites = ['google.com', 'facebook.com', 'twitter.com', 'pinterest.com', 'python.org']
|
||||
|
||||
polish_websites = ['onet.pl', 'interia.pl', 'wp.pl']
|
10
zajecia1/zadania/zadanie_2b.py
Normal file
10
zajecia1/zadania/zadanie_2b.py
Normal file
@ -0,0 +1,10 @@
|
||||
"""
|
||||
Korzystając z listy numbers:
|
||||
* wyświetl na ekranie drugi element.
|
||||
* zlicz ile elementów listy ma wartosc 7 (użyj metody `count`).
|
||||
* ile elementów zawiera lista?
|
||||
* jak sprawdzisz jaka jest największa wartosc zawarta w liscie?
|
||||
"""
|
||||
|
||||
|
||||
numbers = [1, 8, 6, 6, 6, 7, 2, 0, 3, 0, 2, 3, 7, 0, 7, 2, 0, 3, 9, 4]
|
16
zajecia1/zadania/zadanie_2c.py
Normal file
16
zajecia1/zadania/zadanie_2c.py
Normal file
@ -0,0 +1,16 @@
|
||||
"""
|
||||
Lista iris_setosa zawiera informacje o 4 egzemplarzach kosacieca szczecinkowego.
|
||||
Pierwszy indeks to długość kwiata.
|
||||
Drugi indeks to szerokość kwiata.
|
||||
Trzeci indeks to długość liścia.
|
||||
Czwarty indeks to szerokość liścia.
|
||||
|
||||
* Oblicz średnią szerokość kwiata.
|
||||
* Dodaj do listy dane o nowym egzemplarzu: (5.4, 3.9, 1.7, 0.4)
|
||||
"""
|
||||
|
||||
iris_setosa = [
|
||||
[5.1, 3.5, 1.4, 0.2],
|
||||
[4.9, 3, 1.4, 0.2],
|
||||
[4.7, 3.2, 1.3, 0.2],
|
||||
]
|
25
zajecia1/zadania/zadanie_3.py
Normal file
25
zajecia1/zadania/zadanie_3.py
Normal file
@ -0,0 +1,25 @@
|
||||
"""
|
||||
Korzystając ze poniższego słownika, który zawiera informacje z WikiData nt. Adama Mickiewiecza wykonaj następujące zadania:
|
||||
* Wyświetl miejsce urodzenia (place of birth) A. Mickiewicza.
|
||||
* Oblicz ile lat żył A. Mickiewicz.
|
||||
* Dodaj nowy klucz `place of death` o wartości `Istanbul`.
|
||||
* Zamień wartość klucza `place of birth` na `Zaosie`.
|
||||
* Dodaj nowy klucz `spouse`, a którego wartością niech będzie słownik `cecylia_data`.
|
||||
* Wyświetl liczbę elementów listy, która znajduje się pod kluczem `occupation`.
|
||||
* Wyświetl nazwiko żony A. Mickiewicza.
|
||||
"""
|
||||
|
||||
data = {
|
||||
'name': 'Adam',
|
||||
'surname': 'Mickiewicz',
|
||||
'native language': 'polish',
|
||||
'year of birth': 1798,
|
||||
'place of birth': 'Zavosse',
|
||||
'year of death': 1855,
|
||||
'occupation': ['poet', 'professor', 'playwright']
|
||||
}
|
||||
|
||||
cecylia_data = {
|
||||
'name': 'Cecylia',
|
||||
'surname': 'Szymanowska'.
|
||||
}
|
6
zajecia1/zadania/zadanie_4a.py
Normal file
6
zajecia1/zadania/zadanie_4a.py
Normal file
@ -0,0 +1,6 @@
|
||||
"""
|
||||
Sprawdź czy tekst 'aAaAaA' znajduje się w tablicy passwords.
|
||||
W zależności czy znajduje się czy też nie, wyświetl na ekranie odpowiedni komunikat.
|
||||
"""
|
||||
|
||||
passwords = ['aaAaa', 'aAAAaa', 'aaaaaaA', 'aaaAAAAA', 'aaAAAaa', 'aAaAaA', 'aAaAaAA']
|
14
zajecia1/zadania/zadanie_4b.py
Normal file
14
zajecia1/zadania/zadanie_4b.py
Normal file
@ -0,0 +1,14 @@
|
||||
"""
|
||||
Niech x oznacza liczbę uzyskanych punktów. Standardowa skala ocen jest następująca:
|
||||
* x >= 90 -- 5.0
|
||||
* 90 > x >= 80 -- 4.5
|
||||
* 80 > x >= 70 -- 4.0
|
||||
* 70 > x >= 60 -- 3.5
|
||||
* 60 > x >= 50 -- 3.0
|
||||
* x < 50 -- 2.0
|
||||
|
||||
Zmienna `points` zawiera liczbę uzyskanych punktów przez studenta.
|
||||
Napisz instrukcję warunką, która wyświetli ocenę studenta w zależności od liczby punktów.
|
||||
"""
|
||||
|
||||
points = 85
|
4
zajecia1/zadania/zadanie_5a.py
Normal file
4
zajecia1/zadania/zadanie_5a.py
Normal file
@ -0,0 +1,4 @@
|
||||
"""
|
||||
Oblicz sumę liczb od 1 do 678.
|
||||
"""
|
||||
|
23
zajecia1/zadania/zadanie_5b.py
Normal file
23
zajecia1/zadania/zadanie_5b.py
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
"""
|
||||
Słownik `oceny` zawiera oceny kilku osób. Kluczami są imiona dzieci, a wartosciami -- ich oceny.
|
||||
Uzupełnij słownik `rozklad`, którego kluczami są oceny, a wartosciami -- listy...
|
||||
"""
|
||||
|
||||
oceny = {
|
||||
'Albert': 4.5,
|
||||
'Beata': 5,
|
||||
'Cecylia': 4,
|
||||
'Dariusz': 4,
|
||||
'Eliza': 3,
|
||||
'Feliks': 5,
|
||||
'Grzegorz': 4.5,
|
||||
'Izabela': 4.5
|
||||
}
|
||||
|
||||
rozklad = {
|
||||
5: [],
|
||||
4.5: [],
|
||||
4: [],
|
||||
3: []
|
||||
}
|
33
zajecia1/zadania/zadanie_5c.py
Normal file
33
zajecia1/zadania/zadanie_5c.py
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
"""
|
||||
Poniżej znajdują się 2 słowniki z danymi o liczbie przejazdów rowerami miejskimi w Montrealu w 2018 z podziałem na miesiące (od kwietnia do listopada).
|
||||
Pierwszy słownik zawiera informacje o przejazdach wykonanych przez posiadaczy abonamentu, a drugi przez ludzi, którzy
|
||||
nie mają wykupionego abonamentu. Dane pochodzą ze strony https://montreal.bixi.com/en/open-data.
|
||||
|
||||
a) Stwórz trzeci słownik `all_rides`, w którym zliczysz łączną liczbę przejazdów w każdym z podanych miesięcy.
|
||||
b) Oblicz sumę zarejestrowanych przejazdów od kwietnia do listopada.
|
||||
c) Wyswietl jaki procent wszystkich przejazdów odbyło się w sierpniu (August).
|
||||
|
||||
"""
|
||||
|
||||
members = {
|
||||
'April': 211819,
|
||||
'May': 682758,
|
||||
'June': 737011,
|
||||
'July': 779511,
|
||||
'August': 673790,
|
||||
'September': 673790,
|
||||
'October': 444177,
|
||||
'November': 136791,
|
||||
}
|
||||
|
||||
occasionals = {
|
||||
'April': 32058,
|
||||
'May': 147898,
|
||||
'June': 171494,
|
||||
'July': 194316,
|
||||
'August': 206809,
|
||||
'September': 140492,
|
||||
'October': 53596,
|
||||
'November': 10516,
|
||||
}
|
23
zajecia1/zadania/zadanie_5d.py
Normal file
23
zajecia1/zadania/zadanie_5d.py
Normal file
@ -0,0 +1,23 @@
|
||||
"""
|
||||
Poniższy słownik zawiera dane z kilku wybranych krajów nt. liczby drzew na kilometr kwadratowy.
|
||||
a) Wypisz na ekran nazwy tych krajów, dla których współczynnik ten jest większy niż 20000.
|
||||
b) Wypisz na ekran nazwy tych krajów, dla których współczynnik ten jest większy niż 10000, ale mniejszy niż 20000.
|
||||
"""
|
||||
|
||||
tree_per_sqkm = {
|
||||
"Brazil": 39542,
|
||||
"Bulgaria": 24987,
|
||||
"Canada": 36388,
|
||||
"Denmark": 6129,
|
||||
"Finland": 90652,
|
||||
"France": 24436,
|
||||
"Greece": 24323,
|
||||
"India": 11109,
|
||||
"Japan": 49894,
|
||||
"Russia": 41396,
|
||||
"Saudi Arabia": 1,
|
||||
"Syria": 534,
|
||||
"United States": 23513,
|
||||
"Taiwan": 69593,
|
||||
"Turkey": 11126,
|
||||
}
|
11
zajecia1/zadania/zadanie_6a.py
Normal file
11
zajecia1/zadania/zadanie_6a.py
Normal file
@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Napisz kod, który zwraci tzw. "Big 'NO!'" (zob. http://tvtropes.org/pmwiki/pmwiki.php/Main/BigNo)
|
||||
dla zadanej liczby tj. napis typu "NOOOOOOOOOOOOO!", gdzie liczba 'O' ma być
|
||||
równa wartości zmniennej `number_of_o`. Jeśli argument jest mniejszy niż 5, ma być zwracany napis "It's not a Big 'No!'".
|
||||
Wyświetl ten napis na ekran.
|
||||
"""
|
||||
|
||||
number_of_o = 6
|
15
zajecia1/zadania/zadanie_6b.py
Normal file
15
zajecia1/zadania/zadanie_6b.py
Normal file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
"""
|
||||
* Podziel zmienną `text` na słowa, korzystając z metody split.
|
||||
* Dodaj do listy `oov`, wszystkie słowa (bez powtórzeń), które nie są zawarte w liście `vocab`.
|
||||
"""
|
||||
|
||||
|
||||
|
||||
text = "this is a string , which i will use for string testing"
|
||||
vocab = [',', 'this', 'is', 'a', 'which', 'for', 'will', 'i']
|
||||
|
||||
oov = []
|
9
zajecia1/zadania/zadanie_7a.py
Normal file
9
zajecia1/zadania/zadanie_7a.py
Normal file
@ -0,0 +1,9 @@
|
||||
"""
|
||||
1. Napisz rekurencyjną funkcję, która zwróci n-ty wyraz ciągu Fibonacciego.
|
||||
2. Napisz funkcję, która obliczy n-ty wyroz ciągu Fibonacciego nie korzystając z rekurencji.
|
||||
Np. możesz wykorzystać listę do obliczania kolejnych wartości ciągu.
|
||||
|
||||
Ciąg Fibonacciego:
|
||||
a[0] = 1, a[1] = 1, a[n] = a[n-1] + a[n-2] dla n>=2
|
||||
|
||||
"""
|
13
zajecia1/zadania/zadanie_7b.py
Normal file
13
zajecia1/zadania/zadanie_7b.py
Normal file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Napisz funkcję sum_div35(n), która zwraca sumę wszystkich liczb podzielnych
|
||||
przez 3 lub 5 mniejszych niż n.
|
||||
"""
|
||||
|
||||
def sum_div35(n):
|
||||
pass
|
||||
|
||||
input = 100
|
||||
# dla n =100 poprawna odpowiedź to 2318
|
6
zajecia1/zadania/zadanie_8.py
Normal file
6
zajecia1/zadania/zadanie_8.py
Normal file
@ -0,0 +1,6 @@
|
||||
"""
|
||||
Otwórz plik `zen_of_python.txt` i zlicz liczbę linii i słów w tym pliku.
|
||||
Następnie przerób kod na funkcję, która jako argument będzie przyjmować ściężkę do pliku i będzie zwracać
|
||||
słownik z dwoma kluczami: `liczba_linii` i `liczba_slow`.
|
||||
"""
|
||||
|
19
zajecia1/zadania/zadanie_9a.py
Normal file
19
zajecia1/zadania/zadanie_9a.py
Normal file
@ -0,0 +1,19 @@
|
||||
"""
|
||||
Zadania: Zaimportuj bibliotekę statistics, która zawiera funckje do obliczenia podstawych wielkości statystycznych (średnia, mediana, moda):
|
||||
statistics.mean -- obliczenie średniej
|
||||
statistics.median -- obliczenie mediany
|
||||
statistics.variance -- obliczenie wariancji
|
||||
statistics.stdev -- obliczenie odchylenia standardowego Oblicz te wielkości dla wartości z poniższego słownika.
|
||||
Każda z tych funkcji przyjmuje jeden argument: listę wartości.
|
||||
"""
|
||||
|
||||
members = {
|
||||
'April': 211819,
|
||||
'May': 682758,
|
||||
'June': 737011,
|
||||
'July': 779511,
|
||||
'August': 673790,
|
||||
'September': 673790,
|
||||
'October': 444177,
|
||||
'November': 136791,
|
||||
}
|
10
zajecia1/zadania/zadanie_9b.py
Normal file
10
zajecia1/zadania/zadanie_9b.py
Normal file
@ -0,0 +1,10 @@
|
||||
"""
|
||||
Biblioteka random posiada funkcję random, która zwraca losową licznę z przedziału [0, 1) (nie przyjmuje żadnych argumentów).
|
||||
Biblioteka math posiada funkcję hypot, która oblicza odległość punktu od środka układu współrzędnych (punktu [0, 0]) i przyjmuje dwa argumenty: współrzędne punktu.
|
||||
* Zaimportuj biblioteki random i math
|
||||
* korzystając z funkcji random wylosuj dwie liczby i przypisz wyniki do zmniennych x i y.
|
||||
* Korzystając z funkcji hypot oblicz odległość punktu o współrzednych (x,y).
|
||||
* Dodaj pętlę, która będzie wykonywać te czynności n = 10 razy i będzie zliczać ile razy obliczona odległość jest mniejsza od 1.
|
||||
* Oblicz stosunek liczby punktów, dla których odległość wynosiła mniej niż 1 do całkowitej liczby punktów. Pomnóż tę wartocść przez 4.
|
||||
* Podstaw za n wartości 100, 1000, 1000000. Do jakiej wartości zbiegają wartości?
|
||||
"""
|
2
zajecia1/zalesienie.txt
Normal file
2
zajecia1/zalesienie.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Brazil,39542
|
||||
Bulgaria,24987
|
19
zajecia1/zen_of_python.txt
Normal file
19
zajecia1/zen_of_python.txt
Normal file
@ -0,0 +1,19 @@
|
||||
Beautiful is better than ugly.
|
||||
Explicit is better than implicit.
|
||||
Simple is better than complex.
|
||||
Complex is better than complicated.
|
||||
Flat is better than nested.
|
||||
Sparse is better than dense.
|
||||
Readability counts.
|
||||
Special cases aren't special enough to break the rules.
|
||||
Although practicality beats purity.
|
||||
Errors should never pass silently.
|
||||
Unless explicitly silenced.
|
||||
In the face of ambiguity, refuse the temptation to guess.
|
||||
There should be one-- and preferably only one --obvious way to do it.
|
||||
Although that way may not be obvious at first unless you're Dutch.
|
||||
Now is better than never.
|
||||
Although never is often better than *right* now.
|
||||
If the implementation is hard to explain, it's a bad idea.
|
||||
If the implementation is easy to explain, it may be a good idea.
|
||||
Namespaces are one honking great idea -- let's do more of those!
|
Loading…
Reference in New Issue
Block a user