From aa00b3d272603049f91a7d36762b48ec5bcdcabe Mon Sep 17 00:00:00 2001 From: monika Date: Sat, 23 Jun 2018 12:41:54 +0200 Subject: [PATCH] zaddom 06 --- labs02/intro_task.py | 33 ++++++++++++++++++++++----------- labs02/task01.py | 2 +- labs02/task02.py | 7 +++++-- labs02/task03.py | 11 ++++++++--- labs02/task04.py | 6 ++++-- labs02/task05.py | 7 ++++++- labs02/task06.py | 7 ++++++- labs03/Podstawy 2.ipynb | 8 ++++---- labs06/task02.py | 27 ++++++++++++++++++--------- labs06/tasks.py | 36 ++++++++++++++++++------------------ 10 files changed, 92 insertions(+), 52 deletions(-) diff --git a/labs02/intro_task.py b/labs02/intro_task.py index 51e50b3..c03b016 100644 --- a/labs02/intro_task.py +++ b/labs02/intro_task.py @@ -14,43 +14,54 @@ print ('monika', 'budzyńska') """ Oblicz i wypisz na ekran pole koła o promienie 10. Jako PI przyjmij 3.14. """ - +pi = 3.14 +R = 10 +pole = pi * (R ** 2) +print ('pole koła =', pole) """ Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3. """ - +pole_kwadratu = 3*3 """ Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców. Wynik przypisz do zmiennej `owoce`. """ - +lista_owoców = ['awokado', 'jabłko', 'kiwi'] +owoce = lista_owoców +print (owoce) """ Dodaj do powyższej listy jako nowy element "pomidor". """ - +lista_owoców.append('pomidor') +print (owoce) """ Usuń z powyższej listy drugi element. """ - +lista_owoców.pop(1) +print(owoce) """ Rozszerz listę o tablice ['Jabłko', "Gruszka"]. """ - +lista_owoców.extend(['jabłko','gruszka']) +print(owoce) """ Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu. """ - -""" +print(owoce[1:4]) +"""" Wyświetl co trzeci element z listy owoce. """ - +print(owoce[2::3]) """ Stwórz pusty słownik i przypisz go do zmiennej magazyn. """ - +slownik = {} +magazyn = slownik """ Dodaj do słownika magazyn owoce z listy owoce, tak, aby owoce były kluczami, zaś wartościami były równe 5. """ - +for owoc in owoce: + magazyn[owoc] = 5 +print (magazyn) \ No newline at end of file diff --git a/labs02/task01.py b/labs02/task01.py index 7c08c56..aea22bf 100644 --- a/labs02/task01.py +++ b/labs02/task01.py @@ -7,7 +7,7 @@ która zawiera tylko elementy z list o parzystych indeksach. """ def even_elements(lista): - pass + return lista[::2] def tests(f): diff --git a/labs02/task02.py b/labs02/task02.py index a6d6321..0e14a7f 100644 --- a/labs02/task02.py +++ b/labs02/task02.py @@ -6,9 +6,12 @@ """ def days_in_year(days): - pass + if days % 4 == 0 and days % 100 != 0 or days % 400 == 0: + return 366 + else: + return 365 -def tests(f): + def tests(f): inputs = [[2015], [2012], [1900], [2400], [1977]] outputs = [365, 366, 365, 366, 365] diff --git a/labs02/task03.py b/labs02/task03.py index a1c3a85..8d76b64 100644 --- a/labs02/task03.py +++ b/labs02/task03.py @@ -9,13 +9,18 @@ znanych wyrazów vocab. Argumenty funkcji text i vocab to odpowiednio łańcuch znakowy i lista łańuchów znakowych. Wszystkie wyrazy należy zmienić na małe litery. (OOV = out of vocabulary) (W pythonie istnieje struktura danych tak jak 'set', która przechowuje elementy bez powtórzeń.) +text - łańcuch znakowy +vocab - lista łańcuchów znakowych """ def oov(text, vocab): - pass - - + b = set() + a = text.split (" ") + for abc in a: + if abc not in vocab: + b.add(abc) + return b def tests(f): inputs = [("this is a string , which i will use for string testing", diff --git a/labs02/task04.py b/labs02/task04.py index 37413f1..4016b65 100644 --- a/labs02/task04.py +++ b/labs02/task04.py @@ -7,8 +7,10 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0. """ def sum_from_one_to_n(n): - pass - + if n < 1: + return 0 + else: + return sum(range(n+1)) def tests(f): inputs = [[999], [-100]] diff --git a/labs02/task05.py b/labs02/task05.py index f59268a..a3f02a7 100644 --- a/labs02/task05.py +++ b/labs02/task05.py @@ -7,10 +7,15 @@ Napisz funkcję euclidean_distance obliczającą odległość między dwoma punktami przestrzeni trójwymiarowej. Punkty są dane jako trzyelementowe listy liczb zmiennoprzecinkowych. np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5. +x = [0, 0, 0] +y = [3, 4, 0] """ def euclidean_distance(x, y): - pass + if len(x) != len(y): + return 0 + else: + return ((x[0] - y[0])**2 + (x[1]-y[1])**2 + (x[2]-y[2])**2)**0.5 def tests(f): inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]] diff --git a/labs02/task06.py b/labs02/task06.py index ff4a9d3..2388f05 100644 --- a/labs02/task06.py +++ b/labs02/task06.py @@ -10,7 +10,12 @@ ma być zwracany napis "It's not a Big 'No!'". """ def big_no(n): - pass + pierwsze_n = "N" + if n < 5: + return "It's not a Big 'No!'" + else: + return pierwsze_n + n*"O" + "!" + def tests(f): inputs = [[5], [6], [2]] diff --git a/labs03/Podstawy 2.ipynb b/labs03/Podstawy 2.ipynb index 1b30b50..ef2f93b 100644 --- a/labs03/Podstawy 2.ipynb +++ b/labs03/Podstawy 2.ipynb @@ -232,13 +232,13 @@ { "ename": "TypeError", "evalue": "unhashable type: 'list'", - "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mTypeError\u001b[0m: unhashable type: 'list'" - ] + ], + "output_type": "error" } ], "source": [ @@ -398,13 +398,13 @@ { "ename": "ValueError", "evalue": "I/O operation on closed file.", - "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mlinia\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mplik\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreadlines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinia\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplik\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mValueError\u001b[0m: I/O operation on closed file." - ] + ], + "output_type": "error" } ], "source": [ diff --git a/labs06/task02.py b/labs06/task02.py index 9d96016..4b1e965 100755 --- a/labs06/task02.py +++ b/labs06/task02.py @@ -1,14 +1,18 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import pandas as pd +import matplotlib.pyplot as plt def wczytaj_dane(): - pass + dane = pd.read_csv("mieszkania.csv") + dane.head() def most_common_room_number(dane): - pass + return(dane['Rooms'].value_counts().idxmax()) def cheapest_flats(dane, n): - pass + p = dane.sort_values(['Expected'], ascending=[0]) + p.head(n) def find_borough(desc): dzielnice = ['Stare Miasto', @@ -19,23 +23,28 @@ def find_borough(desc): 'Winogrady', 'Miłostowo', 'Dębiec'] - pass + for i in dzielnice: + if desc.find(i) + 1: + return (i) + return ('Inne') def add_borough(dane): - pass + dane['Borough'] = dane['Location'].apply(find_borough) + return (dane) def write_plot(dane, filename): - pass + dane['Borough'].hist() + plt.savefig(filename) def mean_price(dane, room_number): - pass + return dane.Expected[dane.Rooms == room_number].mean() def find_13(dane): - pass + return dane.Borough[dane.Floor == 13].unique() def find_best_flats(dane): - pass + return dane[(dane.Borough == 'Winogrady') & (dane.Rooms == 3) & (dane.Floor == 1)] def main(): dane = wczytaj_dane() diff --git a/labs06/tasks.py b/labs06/tasks.py index 8b2c28e..ff29b57 100755 --- a/labs06/tasks.py +++ b/labs06/tasks.py @@ -4,62 +4,61 @@ """ 1. Zaimportuj bibliotkę pandas jako pd. """ - +import pandas as pd """ -2. Wczytaj zbiór danych `311.csv` do zniennej data. +2. Wczytaj zbiór danych `311.csv` do zmiennej data. """ - - +data = pd.read_csv("./311.csv") """ 3. Wyświetl 5 pierwszych wierszy z data. """ - - +print(data.head(5)) """ 4. Wyświetl nazwy kolumn. """ - +#print(data.columns) """ 5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy. """ +shape = data.shape +rows = shape[0] +cols = shape[1] +#print(rows, cols) """ 6. Wyświetl kolumnę 'City' z powyższego zbioru danych. """ - - +#print(data.City) """ 7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'. """ - +#print(data.City.unique()) """ -8. Wyświetl tabelę rozstawną kolumny City. +8. Wyświetl tabelę rozstawną kolumny City (zliczanie wartosci) value_counts. """ - +#print(data.City.value_counts()) """ 9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia. """ - - +#print(data.City.value_counts().head(4)) """ -10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN. +10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN """ - - +data.City.value_counts() """ 11. Wyświetl data.info() """ +data.info() """ 12. Wyświetl tylko kolumny Borough i Agency i tylko 5 ostatnich linii. """ - """ 13. Wyświetl tylko te dane, dla których wartość z kolumny Agency jest równa NYPD. Zlicz ile jest takich przykładów. @@ -69,6 +68,7 @@ NYPD. Zlicz ile jest takich przykładów. 14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude. """ + """ 15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude. """