From 00d565690fc12febd07e76325a6949dfd15b1cd0 Mon Sep 17 00:00:00 2001 From: s45162 Date: Fri, 15 Dec 2017 17:50:29 +0100 Subject: [PATCH] Homework#2 --- labs03/README.md | 5 ++++- labs03/task01.py | 2 +- labs03/task02.py | 15 +++++---------- labs03/task03.py | 5 +++++ labs03/task04.py | 20 ++++++++++++++++++++ labs03/task05.py | 8 ++++++++ labs04/task01.py | 3 --- labs04/task03.py | 38 ++++++++++++++++++++++++++++++++++++++ 8 files changed, 81 insertions(+), 15 deletions(-) create mode 100644 labs03/task03.py create mode 100644 labs03/task04.py create mode 100644 labs03/task05.py diff --git a/labs03/README.md b/labs03/README.md index 85feb92..6d04b53 100644 --- a/labs03/README.md +++ b/labs03/README.md @@ -27,7 +27,10 @@ Zainstaluj bibliotekę ``weather-api`` (https://pypi.python.org/pypi/weather-api * Korzystając z prognozy, znajdź dzień, w którym będzie najzimniej. Wypisz nazwę tygodnia (w języku polskim) i temperaturę w C. **ćwiczenie 5** -Katalog scores zawiera 64 pliki tekstowe, które posiadają informacje o wysokości miary ``BLEU`` na różnych etapach trenowania modelu. Nazwa każdego pliku na postać ``model.iterXXXXXXX.npz.bleu``, gdzie ``XXXXXXX``, to liczba iteracji.Zawartość każdego pliku jest podobna i ma następującą formę: *BLEU = YY.YY, 44.4/18.5/9.3/5.0 (BP=1.000, ratio=1.072, hyp_len=45976, ref_len=42903)*, gdzie ``YY.YY`` to wartość miary ``BLEU``. Znajdź plik, który zawiera najwyższą wartość miary ``BLEU``. +Katalog scores zawiera 64 pliki tekstowe, które posiadają informacje o wysokości miary ``BLEU`` +na różnych etapach trenowania modelu. Nazwa każdego pliku na postać ``model.iterXXXXXXX.npz.bleu``, gdzie ``XXXXXXX``, +to liczba iteracji.Zawartość każdego pliku jest podobna i ma następującą formę: *BLEU = YY.YY, 44.4/18.5/9.3/5.0 (BP=1.000, + ratio=1.072, hyp_len=45976, ref_len=42903)*, gdzie ``YY.YY`` to wartość miary ``BLEU``. Znajdź plik, który zawiera najwyższą wartość miary ``BLEU``. * Wykorzystaj bibliotekę ``glob`` (https://docs.python.org/2/library/glob.html) * Wyświetl tylko pełną nazwe pliku (wraz z ścieżką). diff --git a/labs03/task01.py b/labs03/task01.py index e6940c4..d2ca48a 100644 --- a/labs03/task01.py +++ b/labs03/task01.py @@ -1,3 +1,3 @@ print(id([3,5])) print(id('kot')) -print(id(3.25)) +print(id((1/3))) diff --git a/labs03/task02.py b/labs03/task02.py index 7ab76be..ffc2845 100644 --- a/labs03/task02.py +++ b/labs03/task02.py @@ -1,15 +1,10 @@ def Fib(n): - i=n+2 - if (n==0): - yield 1 - if (n==1): - yield 1 - else: - for i in range(n): - yield i + a, b = 0, 1 + for _ in range(n): + yield a + a, b = b, a + b - -for c in Fib(5): +for c in Fib(7): print(c) ##(``F(0)=1, F(1)=1, FN=F(N-1) + F(N-2)``). diff --git a/labs03/task03.py b/labs03/task03.py new file mode 100644 index 0000000..40aded6 --- /dev/null +++ b/labs03/task03.py @@ -0,0 +1,5 @@ +# pip install --user requests +import requests +r = requests.get('https://api.fixer.io/latest', auth=('user', 'pass')) +jkursy=r.json() +print("EUR:PLN "+str(jkursy['rates']['PLN'])) diff --git a/labs03/task04.py b/labs03/task04.py new file mode 100644 index 0000000..e6fb3bb --- /dev/null +++ b/labs03/task04.py @@ -0,0 +1,20 @@ +#pip install --user weather-api +from datetime import datetime +from weather import Weather +weather=Weather() +city="Poznan" +weather_city=weather.lookup_by_location(city) +print("Aktualna pogoda in "+city+" :", weather_city.condition().text()) + +def ftoC(t): + return round(5/9 * (t-32),3) + +daymap={0:"Poniedziałek",1:"Wtorek",2:"Środa",3:"Czwartek",4:"Piątek",5:"Sobota",6:"Niedziela"} +tmin=[] +dates=[] +for item in weather_city.forecast(): + dates.append(item.date()) + tmin.append(ftoC(int(item.low()))) + + +print("Minimana temperatura w dniach "+dates[0]+" - " + dates[-1]+ " to " + str(min(tmin)) +"C przewidywana na dzień "+ dates[tmin.index(min(tmin))] + " ("+daymap[datetime.strptime(dates[tmin.index(min(tmin))],'%d %b %Y').weekday()]+").") diff --git a/labs03/task05.py b/labs03/task05.py new file mode 100644 index 0000000..acbc7af --- /dev/null +++ b/labs03/task05.py @@ -0,0 +1,8 @@ +import glob,json +bleu={} +name="" +for i in glob.glob('scores/*'): + file=open(i,'r').read().replace(",","").split(" ") + bleu[i]=float(file[2]) + +print("Minimalna wartość BLEU znaleziona w pliku: " +min(bleu, key=bleu.get)) \ No newline at end of file diff --git a/labs04/task01.py b/labs04/task01.py index d9eaba4..55d8477 100644 --- a/labs04/task01.py +++ b/labs04/task01.py @@ -6,6 +6,3 @@ def is_numeric(lista): if not(isinstance(x,float)) and not(isinstance(x,int)): return False return True - - -print(is_numeric([5,56])) \ No newline at end of file diff --git a/labs04/task03.py b/labs04/task03.py index 88741a4..bcf479e 100644 --- a/labs04/task03.py +++ b/labs04/task03.py @@ -1,3 +1,41 @@ #!/usr/bin/env python2 # -*- coding: utf-8 -*- +from task01 import * + +class DimensionError(Exception): + def __init__(self, text): + self.text = text + def __str__(self): + return self.text + +class Point: + + def __init__(self, wspolrzedne): + if (is_numeric(wspolrzedne)): + self.wspolrzedne=wspolrzedne + else: + raise Exception("Non numerical coords") + def __len__(self): + return len(self.wspolrzedne) + def __str__(self): + return(str(self.wspolrzedne)) + def to_string(self): + return str(self.wspolrzedne) + def __add__(self, other): + if len(self.wspolrzedne)!=len(other.wspolrzedne): + raise DimensionError("Elements have different dimensions!!1") + else: + return [i+j for (i,j) in zip(self.wspolrzedne,other.wspolrzedne)] + + + +pt=Point([1,2]) +print(len(pt)) +print(str(pt)) +print(pt.to_string()) +pt2=Point([7,99]) +print(pt+pt2) +pt3=Point([1,2,3]) +print(pt+pt3) +