From 24f3ab5175918295c0a7e9bc40012303046803db Mon Sep 17 00:00:00 2001 From: Maksymilian Stachowiak Date: Sat, 18 Nov 2023 16:42:28 +0100 Subject: [PATCH] Solved course1 --- zajecia1/2_podstawy.ipynb | 72 ++++++++++++++++++++++++++++------ zajecia1/zadania/zadanie_1a.py | 5 +++ zajecia1/zadania/zadanie_1b.py | 3 ++ zajecia1/zadania/zadanie_1c.py | 6 ++- zajecia1/zadania/zadanie_2a.py | 12 ++++++ zajecia1/zadania/zadanie_2b.py | 7 +++- zajecia1/zadania/zadanie_2c.py | 12 ++++++ zajecia1/zadania/zadanie_3.py | 14 ++++++- zajecia1/zadania/zadanie_4a.py | 9 ++++- zajecia1/zadania/zadanie_4b.py | 16 +++++++- zajecia1/zadania/zadanie_5a.py | 1 + zajecia1/zadania/zadanie_5b.py | 5 +++ zajecia1/zadania/zadanie_5c.py | 9 +++++ zajecia1/zadania/zadanie_5d.py | 7 ++++ zajecia1/zadania/zadanie_6a.py | 8 +++- zajecia1/zadania/zadanie_6b.py | 9 +++++ zajecia1/zadania/zadanie_7a.py | 19 +++++++++ zajecia1/zadania/zadanie_7b.py | 7 +++- zajecia1/zadania/zadanie_8.py | 16 ++++++++ zajecia1/zadania/zadanie_9a.py | 7 ++++ zajecia1/zadania/zadanie_9b.py | 18 +++++++++ zajecia1/zalesienie.txt | 4 +- 22 files changed, 244 insertions(+), 22 deletions(-) diff --git a/zajecia1/2_podstawy.ipynb b/zajecia1/2_podstawy.ipynb index e78a44b..542f888 100644 --- a/zajecia1/2_podstawy.ipynb +++ b/zajecia1/2_podstawy.ipynb @@ -15,7 +15,40 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "Hello Lumenn\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "module 'math' has no attribute 'average'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[19], line 6\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28mprint\u001b[39m(a)\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mHello Lumenn\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m----> 6\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[43mmath\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maverage\u001b[49m(\u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m10\u001b[39m)))\n", + "\u001b[1;31mAttributeError\u001b[0m: module 'math' has no attribute 'average'" + ] + } + ], + "source": [ + "import math\n", + "\n", + "a = 2\n", + "print(a)\n", + "print('Hello Lumenn')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "metadata": { "slideshow": { "slide_type": "slide" @@ -58,22 +91,34 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 40, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AlicjaBartosz 123\n" + ] + } + ], "source": [ - "user1 = \"Alicja\"\n", - "user2 = \"Bartosz\"\n", - "user3 = \"Cecylia\"" + "import typing\n", + "\n", + "user1: str = \"Alicja\"\n", + "user2: str = \"Bartosz\"\n", + "user3: int = 123\n", + "\n", + "print(user1 + user2, user3)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 24, "metadata": { "slideshow": { "slide_type": "slide" @@ -114,7 +159,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 26, "metadata": { "slideshow": { "slide_type": "slide" @@ -135,7 +180,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 36, "metadata": { "slideshow": { "slide_type": "slide" @@ -672,6 +717,9 @@ "cell_type": "markdown", "metadata": { "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "slideshow": { "slide_type": "slide" } @@ -2897,7 +2945,7 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -2911,9 +2959,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.11" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } diff --git a/zajecia1/zadania/zadanie_1a.py b/zajecia1/zadania/zadanie_1a.py index ce9f3ba..6a95eb5 100644 --- a/zajecia1/zadania/zadanie_1a.py +++ b/zajecia1/zadania/zadanie_1a.py @@ -5,3 +5,8 @@ * oblicz pole koła i przypisz wynik do zmniennej `pole`. P = pi * r ** 2 * wyświetl wynik na ekran. """ + +pi = 3.14 +promien = 12 + +print(pi * promien ** 2) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_1b.py b/zajecia1/zadania/zadanie_1b.py index 5e11aa0..06d1ed8 100644 --- a/zajecia1/zadania/zadanie_1b.py +++ b/zajecia1/zadania/zadanie_1b.py @@ -9,3 +9,6 @@ a = "12" b = "35.5" c = True +wynik = int(a) + float(b) + int(c) + +print(wynik) diff --git a/zajecia1/zadania/zadanie_1c.py b/zajecia1/zadania/zadanie_1c.py index 8668e08..b56f365 100644 --- a/zajecia1/zadania/zadanie_1c.py +++ b/zajecia1/zadania/zadanie_1c.py @@ -5,8 +5,8 @@ * Wyświetl sumaryczną długość zmiennych firstname i surname. """ -firstname = "Tomasz" -surname = "Dwojak" +firstname = "Lumenn" +surname = "Silme" print(f"Nazywam się {firstname} {surname}.") @@ -14,4 +14,6 @@ print(firstname.lower()) print("Nazywam się %s %s" % (firstname, surname)) +fullname = f'{firstname} {surname}' +print(fullname, len(fullname)) diff --git a/zajecia1/zadania/zadanie_2a.py b/zajecia1/zadania/zadanie_2a.py index 00aaadb..fd822a6 100644 --- a/zajecia1/zadania/zadanie_2a.py +++ b/zajecia1/zadania/zadanie_2a.py @@ -12,3 +12,15 @@ Poniżej znajduje się lista `websites`. websites = ['google.com', 'facebook.com', 'twitter.com', 'pinterest.com', 'python.org'] polish_websites = ['onet.pl', 'interia.pl', 'wp.pl'] + + +print(websites.index('pinterest.com')) +websites[4] = 'yahoo.com' +print(websites) +websites.append('bing.com') + +social_networks = websites[1:3] +print(social_networks) + +websites.extend(polish_websites) +print(websites, len(websites)) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_2b.py b/zajecia1/zadania/zadanie_2b.py index d87d038..fe1e0ab 100644 --- a/zajecia1/zadania/zadanie_2b.py +++ b/zajecia1/zadania/zadanie_2b.py @@ -7,4 +7,9 @@ Korzystając z listy numbers: """ -numbers = [1, 8, 6, 6, 6, 7, 2, 0, 3, 0, 2, 3, 7, 0, 7, 2, 0, 3, 9, 4] \ No newline at end of file +numbers = [1, 8, 6, 6, 6, 7, 2, 0, 3, 0, 2, 3, 7, 0, 7, 2, 0, 3, 9, 4] + +print(numbers[1]) +print(numbers.count(7)) +print(len(numbers)) +print(max(numbers)) diff --git a/zajecia1/zadania/zadanie_2c.py b/zajecia1/zadania/zadanie_2c.py index 140eb66..ee831fb 100644 --- a/zajecia1/zadania/zadanie_2c.py +++ b/zajecia1/zadania/zadanie_2c.py @@ -14,3 +14,15 @@ iris_setosa = [ [4.9, 3, 1.4, 0.2], [4.7, 3.2, 1.3, 0.2], ] + +sum = 0 +for set in iris_setosa: + sum += set[1] + +print(sum/len(iris_setosa)) + +iris_setosa.append( + [5.4, 3.9, 1.7, 0.4] +) + +print(iris_setosa) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_3.py b/zajecia1/zadania/zadanie_3.py index e469edf..a5f363d 100644 --- a/zajecia1/zadania/zadanie_3.py +++ b/zajecia1/zadania/zadanie_3.py @@ -21,5 +21,17 @@ data = { cecylia_data = { 'name': 'Cecylia', - 'surname': 'Szymanowska'. + 'surname': 'Szymanowska' } + + +print(data['place of birth']) +print(data['year of death'] - data['year of birth']) +data['place of death'] = 'Istanbul' +print(data) +data['place of birth'] = 'Zaosie' +print(data) +data['spouse'] = cecylia_data +print(data) +print(len(data['occupation'])) +print(data['spouse']['name']) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_4a.py b/zajecia1/zadania/zadanie_4a.py index 22b1589..7f4f01e 100644 --- a/zajecia1/zadania/zadanie_4a.py +++ b/zajecia1/zadania/zadanie_4a.py @@ -3,4 +3,11 @@ 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'] \ No newline at end of file +passwords = ['aaAaa', 'aAAAaa', 'aaaaaaA', 'aaaAAAAA', 'aaAAAaa', 'aAaAaA', 'aAaAaAA'] + + + +if 'aAaAaA' in passwords: + print('Exists') +else: + print('Not exits') \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_4b.py b/zajecia1/zadania/zadanie_4b.py index 24a963f..5d235b2 100644 --- a/zajecia1/zadania/zadanie_4b.py +++ b/zajecia1/zadania/zadanie_4b.py @@ -11,4 +11,18 @@ 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 +points = 40 + +if points >= 90: + print(5.0) +elif points >= 80: + print(4.5) +elif points >= 70: + print(4.0) +elif points >= 60: + print(3.5) +elif points >= 50: + print(3.0) +else: + print(2.0) + diff --git a/zajecia1/zadania/zadanie_5a.py b/zajecia1/zadania/zadanie_5a.py index 72390cd..2320276 100644 --- a/zajecia1/zadania/zadanie_5a.py +++ b/zajecia1/zadania/zadanie_5a.py @@ -2,3 +2,4 @@ Oblicz sumę liczb od 1 do 678. """ +print(sum(range(1,678))) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_5b.py b/zajecia1/zadania/zadanie_5b.py index 68833fe..dc762f3 100644 --- a/zajecia1/zadania/zadanie_5b.py +++ b/zajecia1/zadania/zadanie_5b.py @@ -21,3 +21,8 @@ rozklad = { 4: [], 3: [] } + +for k in oceny: + rozklad[oceny[k]].append(k) + +print(rozklad) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_5c.py b/zajecia1/zadania/zadanie_5c.py index 88398b9..a11fda1 100644 --- a/zajecia1/zadania/zadanie_5c.py +++ b/zajecia1/zadania/zadanie_5c.py @@ -31,3 +31,12 @@ occasionals = { 'October': 53596, 'November': 10516, } + +allrides = {} + +for month in members: + allrides[month] = members[month] + occasionals[month] + +print(allrides) +print(sum(members.values())) +print(allrides['August'] / sum(allrides.values()) * 100) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_5d.py b/zajecia1/zadania/zadanie_5d.py index 638fa77..a05f982 100644 --- a/zajecia1/zadania/zadanie_5d.py +++ b/zajecia1/zadania/zadanie_5d.py @@ -21,3 +21,10 @@ tree_per_sqkm = { "Taiwan": 69593, "Turkey": 11126, } + +for country in tree_per_sqkm: + sqkm = tree_per_sqkm[country] + if sqkm > 20_000: + print(f'Over 20k: {country}') + if sqkm > 10_000 and sqkm < 20_000: + print(f'Between 10k and 20k: {country}') \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_6a.py b/zajecia1/zadania/zadanie_6a.py index fbd7e85..7dec1af 100644 --- a/zajecia1/zadania/zadanie_6a.py +++ b/zajecia1/zadania/zadanie_6a.py @@ -8,4 +8,10 @@ równa wartości zmniennej `number_of_o`. Jeśli argument jest mniejszy niż 5, Wyświetl ten napis na ekran. """ -number_of_o = 6 +number_of_o = 4 + +if number_of_o > 5: + o = 'O' * number_of_o + print(f'N{o}!' ) +else: + print('It\'s not a big \'No!\'') \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_6b.py b/zajecia1/zadania/zadanie_6b.py index 409a4b7..95f7a3c 100644 --- a/zajecia1/zadania/zadanie_6b.py +++ b/zajecia1/zadania/zadanie_6b.py @@ -12,4 +12,13 @@ text = "this is a string , which i will use for string testing" vocab = [',', 'this', 'is', 'a', 'which', 'for', 'will', 'i'] +text = text.split(' ') + oov = [] + +for word in text: + if word not in vocab and word not in oov: + oov.append(word) + +print(oov) + diff --git a/zajecia1/zadania/zadanie_7a.py b/zajecia1/zadania/zadanie_7a.py index 5f8925d..897cbbd 100644 --- a/zajecia1/zadania/zadanie_7a.py +++ b/zajecia1/zadania/zadanie_7a.py @@ -7,3 +7,22 @@ Ciąg Fibonacciego: a[0] = 1, a[1] = 1, a[n] = a[n-1] + a[n-2] dla n>=2 """ + +def fibonacciValue(limit, currentValue=1, previousValue=1): + if currentValue < limit: + print(currentValue) + fibonacciValue(limit, currentValue + previousValue, currentValue) + else: + return + +def fibonacciSteps(stepLimit, currentValue = 1, previousValue = 1, step = 0): + if step < stepLimit: + print(currentValue) + step += 1 + fibonacciSteps(stepLimit, currentValue + previousValue, currentValue, step) + else: + return + +fibonacciValue(100) + +fibonacciSteps(10) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_7b.py b/zajecia1/zadania/zadanie_7b.py index 6bab0b4..836c5a8 100644 --- a/zajecia1/zadania/zadanie_7b.py +++ b/zajecia1/zadania/zadanie_7b.py @@ -7,7 +7,12 @@ przez 3 lub 5 mniejszych niż n. """ def sum_div35(n): - pass + sum = 0 + for i in range(n): + if i % 3 == 0 or i % 5 == 0: + sum += i + return sum input = 100 +print(sum_div35(input)) # dla n =100 poprawna odpowiedź to 2318 diff --git a/zajecia1/zadania/zadanie_8.py b/zajecia1/zadania/zadanie_8.py index ebae6bf..068d64b 100644 --- a/zajecia1/zadania/zadanie_8.py +++ b/zajecia1/zadania/zadanie_8.py @@ -3,4 +3,20 @@ 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`. """ +import pathlib + +def read_metadata(path): + f = open(path, 'r') + file_content = f.read() + + response = { + 'liczba_linii': file_content.count('\n'), + 'liczba_slow': len(file_content.split()) + } + + return response + + + +print(read_metadata(f'{pathlib.Path(__file__).parent.resolve()}\..\zen_of_python.txt')) diff --git a/zajecia1/zadania/zadanie_9a.py b/zajecia1/zadania/zadanie_9a.py index 407460d..9243013 100644 --- a/zajecia1/zadania/zadanie_9a.py +++ b/zajecia1/zadania/zadanie_9a.py @@ -7,6 +7,8 @@ Zadania: Zaimportuj bibliotekę statistics, która zawiera funckje do obliczenia Każda z tych funkcji przyjmuje jeden argument: listę wartości. """ +import statistics + members = { 'April': 211819, 'May': 682758, @@ -17,3 +19,8 @@ members = { 'October': 444177, 'November': 136791, } + +print('Mean:', statistics.mean(members.values())) +print('Median:', statistics.median(members.values())) +print('Variance:', statistics.variance(members.values())) +print('Stdev:', statistics.stdev(members.values())) \ No newline at end of file diff --git a/zajecia1/zadania/zadanie_9b.py b/zajecia1/zadania/zadanie_9b.py index 12536de..c7f941c 100644 --- a/zajecia1/zadania/zadanie_9b.py +++ b/zajecia1/zadania/zadanie_9b.py @@ -8,3 +8,21 @@ Biblioteka math posiada funkcję hypot, która oblicza odległość punktu od ś * 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? """ + +import math +import random + +cntLessThanOne = 0 +repetitions = 10000 + +for i in range(0,repetitions): + x = random.random() + y = random.random() + distance = math.hypot(x, y) + print(x, y, distance) + if distance < 1: + cntLessThanOne += 1 + + +print(cntLessThanOne) +print(cntLessThanOne/repetitions * 4) \ No newline at end of file diff --git a/zajecia1/zalesienie.txt b/zajecia1/zalesienie.txt index 60e937d..990a909 100644 --- a/zajecia1/zalesienie.txt +++ b/zajecia1/zalesienie.txt @@ -1,2 +1,2 @@ -Brazil,39542 -Bulgaria,24987 +Brazil,39542 +Bulgaria,24987