forked from tdwojak/Python2017
Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
a0fecba5c4 | |||
26afa652a5 | |||
f61d161938 | |||
5d25e165c4 | |||
dc5fb3f34b | |||
fd67d4b96f | |||
1599eb71ba | |||
524eefe436 | |||
7ef244fb88 | |||
d8025c91ff | |||
378fee7582 |
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -1,24 +1,38 @@
|
||||
ID | labs02:task07 | labs02:task08 | labs02:task09 | labs02:task10 | labs02:task11
|
||||
---------|-----------------|-----------------|-----------------|-----------------|---------------
|
||||
s45168 | 0 | 0 | 0 | 0 | 0
|
||||
s45162 | 1 | 1 | 1 | 1 | 1
|
||||
s45158 | 1 | 1 | 0 | 0 | 1
|
||||
szwedek | 1 | 1 | 1 | 1 | 1
|
||||
s45155 | 1 | 1 | 1 | 1 | 1
|
||||
s45152 | 1 | 1 | 1 | 0 | 1
|
||||
s45148 | 1 | 1 | 1 | 1 | 1
|
||||
s45166 | 1 | 1 | 1 | 1 | 1
|
||||
s45151 | 1 | 1 | 1 | 1 | 1
|
||||
s45146 | 1 | 1 | 1 | 1 | 1
|
||||
s45150 | 1 | 1 | 1 | 1 | 1
|
||||
s45452 | 1 | 1 | 1 | 1 | 1
|
||||
s45165 | 1 | 1 | 1 | 1 | 1
|
||||
s45160 | 1 | 1 | 1 | 1 | 1
|
||||
s45153 | 0 | 0 | 0 | 0 | 0
|
||||
s45156 | 1 | 1 | 1 | 1 | 1
|
||||
s45157 | 0 | 0 | 1 | 1 | 1
|
||||
s45167 | 1 | 1 | 1 | 1 | 1
|
||||
s45147 | 1 | 0 | 0 | 1 | 0
|
||||
s45159 | 0 | 0 | 0 | 0 | 0
|
||||
s45161 | 1 | 1 | 1 | 1 | 1
|
||||
s45164 | 1 | 1 | 0 | 1 | 0
|
||||
ID | labs02:task07 | labs02:task08 | labs02:task09 | labs02:task10 | labs02:task11 | labs03 | labs04 | labs06 | Punkty | Ocena |
|
||||
---------|-----------------|-----------------|-----------------|-----------------|-----------------|----------|----------|----------|--------|-------|
|
||||
s45146 | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 8 | 22 | 5 |
|
||||
s45147 | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 8 | 22 | 5 |
|
||||
s45148 | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 8 | 22 | 5 |
|
||||
s45150 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 8 | 16 | 4 |
|
||||
s45151 | 1 | 1 | 1 | 1 | 1 | 0 | 5 | 8 | 18 | 4.5 |
|
||||
s45152 | 1 | 1 | 1 | 0 | 1 | 0 | 5 | 8 | 17 | 4 |
|
||||
s45153 | 0 | 1 | 1 | 1 | 1 | 4 | 0 | 8 | 16 | 4 |
|
||||
s45155 | 1 | 1 | 1 | 1 | 1 | 1 | 5 | 8 | 19 | 4.5 |
|
||||
s45156 | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 8 | 22 | 5 |
|
||||
s45157 | 1 | 1 | 1 | 1 | 1 | 4 | 4 | 8 | 21 | 5 |
|
||||
s45158 | 1 | 1 | 0 | 0 | 1 | 4 | 5 | 8 | 19 | 4.5 |
|
||||
s45159 | 1 | 1 | 1 | 1 | 1 | 2 | 3 | 8 | 18 | 4.5 |
|
||||
s45160 | 1 | 1 | 1 | 1 | 1 | 4 | 4 | 8 | 21 | 5 |
|
||||
s45161 | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 8 | 22 | 5 |
|
||||
s45162 | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 8 | 22 | 5 |
|
||||
s45163 | 1 | 1 | 1 | 1 | 1 | 4 | 4 | 8 | 21 | 5 |
|
||||
s45164 | 1 | 1 | 0 | 1 | 0 | 0 | 5 | 8 | 16 | 4 |
|
||||
s45165 | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 8 | 22 | 5 |
|
||||
s45166 | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 8 | 22 | 5 |
|
||||
s45167 | 1 | 1 | 1 | 1 | 1 | 0 | 5 | 8 | 17 | 4 |
|
||||
s45168 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |
|
||||
s45452 | 1 | 1 | 1 | 1 | 1 | 4 | 4 | 8 | 21 | 5 |
|
||||
szwedek | 1 | 1 | 1 | 1 | 1 | 4 | 5 | 10 | 24 | 5 |
|
||||
|
||||
Skala:
|
||||
|
||||
Punkty | Ocena |
|
||||
-------|-------|
|
||||
24-20 | 5 |
|
||||
19-18 | 4.5 |
|
||||
17-16 | 4 |
|
||||
15-13 | 3 |
|
||||
12-0 | 2 |
|
||||
|
||||
|
||||
Max: 22
|
||||
|
@ -30,7 +30,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -44,7 +43,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -78,7 +76,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -113,7 +110,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -134,7 +130,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -151,7 +146,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -183,7 +177,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
@ -214,7 +207,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -229,7 +221,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -244,7 +235,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -270,7 +260,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -302,7 +291,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -332,7 +320,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -361,7 +348,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -376,7 +362,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -402,7 +387,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -431,7 +415,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -450,7 +433,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -476,7 +458,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -491,7 +472,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -529,7 +509,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -547,7 +526,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -575,7 +553,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -593,7 +570,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -619,21 +595,13 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Wiadomość\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"napis = \"Wiadomość\"\n",
|
||||
"print(napis)"
|
||||
@ -641,29 +609,13 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"W 87\n",
|
||||
"i 105\n",
|
||||
"a 97\n",
|
||||
"d 100\n",
|
||||
"o 111\n",
|
||||
"m 109\n",
|
||||
"o 111\n",
|
||||
"ś 347\n",
|
||||
"ć 263\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"for znak in napis:\n",
|
||||
" print(znak, ord(znak))"
|
||||
@ -673,7 +625,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
@ -690,7 +641,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "slide"
|
||||
}
|
||||
@ -705,7 +655,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
@ -720,7 +669,6 @@
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"slideshow": {
|
||||
"slide_type": "fragment"
|
||||
}
|
||||
|
@ -7,7 +7,8 @@ która zawiera tylko elementy z list o parzystych indeksach.
|
||||
"""
|
||||
|
||||
def even_elements(lista):
|
||||
return(lista[::2])
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]]
|
||||
|
@ -6,10 +6,7 @@
|
||||
"""
|
||||
|
||||
def days_in_year(days):
|
||||
if ((days%4 == 0) and (days%100 != 0)) or (days%400 == 0):
|
||||
return (366)
|
||||
else:
|
||||
return (365)
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[2015], [2012], [1900], [2400], [1977]]
|
||||
|
@ -13,10 +13,7 @@ jak 'set', która przechowuje elementy bez powtórzeń.)
|
||||
|
||||
|
||||
def oov(text, vocab):
|
||||
text = text.split(" ")
|
||||
|
||||
return(set(text) - set(vocab))
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
@ -7,11 +7,7 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0.
|
||||
"""
|
||||
|
||||
def sum_from_one_to_n(n):
|
||||
if n >= 1:
|
||||
return(sum(range(1,n+1)))
|
||||
if n < 1:
|
||||
return (0)
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -8,11 +8,9 @@ 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.
|
||||
"""
|
||||
import math
|
||||
|
||||
def euclidean_distance(x, y):
|
||||
return(math.sqrt((x[0] - y[0])**2) + math.sqrt((x[1]-y[1])**2))
|
||||
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]]
|
||||
|
@ -10,10 +10,7 @@ ma być zwracany napis "It's not a Big 'No!'".
|
||||
"""
|
||||
|
||||
def big_no(n):
|
||||
if n >=5:
|
||||
return('N' + ('O' * n)+'!')
|
||||
if n <5:
|
||||
return ("It's not a Big 'No!'")
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[5], [6], [2]]
|
||||
|
@ -6,11 +6,7 @@ Napisz funkcję char_sum, która dla zadanego łańcucha zwraca
|
||||
sumę kodów ASCII znaków.
|
||||
"""
|
||||
def char_sum(text):
|
||||
suma = 0
|
||||
for element in text:
|
||||
suma += ord(element)
|
||||
return(suma)
|
||||
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [["this is a string"], ["this is another string"]]
|
||||
|
@ -7,11 +7,7 @@ przez 3 lub 5 mniejszych niż n.
|
||||
"""
|
||||
|
||||
def sum_div35(n):
|
||||
suma = 0
|
||||
for i in range(n):
|
||||
if (i%3 == 0 or i%5 == 0):
|
||||
suma += i
|
||||
return (suma)
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[10], [100], [3845]]
|
||||
|
@ -9,17 +9,7 @@ Np. leet('leet') powinno zwrócić '1337'.
|
||||
|
||||
|
||||
def leet_speak(text):
|
||||
if 'l' in text:
|
||||
text = text.replace('l', '1')
|
||||
if 'e' in text:
|
||||
text = text.replace('e', '3')
|
||||
if 'o' in text:
|
||||
text = text.replace('o', '0')
|
||||
if 't' in text:
|
||||
text = text.replace('t', '7')
|
||||
return (text)
|
||||
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -7,19 +7,9 @@ Napisz funkcję pokemon_speak, która zamienia w podanym napisie co drugą liter
|
||||
na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
|
||||
"""
|
||||
|
||||
|
||||
def pokemon_speak(text):
|
||||
txtstr= ''
|
||||
if text.isupper():
|
||||
return(text)
|
||||
else:
|
||||
for i in range (len(text)):
|
||||
if (i % 2 == 0):
|
||||
txtstr +=text[i].upper()
|
||||
else:
|
||||
txtstr += text[i]
|
||||
return(txtstr)
|
||||
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -9,20 +9,7 @@ Oba napisy będą składać się wyłacznie z małych liter.
|
||||
"""
|
||||
|
||||
def common_chars(string1, string2):
|
||||
lista1 = list(string1)
|
||||
lista2 =list(string2)
|
||||
unique_val = set()
|
||||
for i in lista1:
|
||||
for x in lista2:
|
||||
if i == x:
|
||||
if i.isspace():
|
||||
pass
|
||||
else:
|
||||
unique_val.add(i)
|
||||
lista = list(unique_val)
|
||||
lista.sort()
|
||||
return(lista)
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -1,21 +0,0 @@
|
||||
"""**ćwiczenie 2**
|
||||
Napisz generator, który będzie zwracać ``n`` kolejnych liczb ciągu Fibonacciego (``F(0)=1, F(1)=1, FN=F(N-1) + F(N-2)``)."""
|
||||
|
||||
def Fibonacci(n):
|
||||
|
||||
x = 0
|
||||
print(x)
|
||||
y = 1
|
||||
print(y)
|
||||
z = 0
|
||||
z = x + y
|
||||
print (z)
|
||||
|
||||
for i in range(2, n):
|
||||
x = y
|
||||
y = z
|
||||
z = x + y
|
||||
print(z)
|
||||
|
||||
|
||||
Fibonacci(19)
|
@ -1,19 +0,0 @@
|
||||
""""**ćwiczenie 3**
|
||||
Strona ``https://api.fixer.io/latest`` udostępnia kursy różnych walut w stosunku do euro. Napisz skrypt, który:
|
||||
* pobierze zawartość JSONa. Wykorzystaj bibliotekę ``requests`` (http://docs.python-requests.org/en/master/).
|
||||
* korzystając z biblioteki ``json`` przekształć go do obiketu typu JSON.
|
||||
* Wyświetl wartość kursu EUR do PLN."""
|
||||
|
||||
import requests
|
||||
|
||||
url = 'https://api.fixer.io/latest'
|
||||
|
||||
response = requests.get(url)
|
||||
|
||||
content = response.json()
|
||||
|
||||
rates = content['rates']
|
||||
|
||||
for key , value in rates.items():
|
||||
if key == 'PLN':
|
||||
print (value)
|
121
labs03/task4.py
121
labs03/task4.py
@ -1,121 +0,0 @@
|
||||
"""**ćwiczenie 4**
|
||||
Zainstaluj bibliotekę ``weather-api`` (https://pypi.python.org/pypi/weather-api). Korzystając z niej:
|
||||
* Wypisz informacje o aktualnej pogodzie.
|
||||
* Napisz funkcję, która zamieni stopnie ``F`` na ``C``.
|
||||
* Korzystając z prognozy, znajdź dzień, w którym będzie najzimniej.Wypisz nazwę tygodnia (w języku polskim) i temperaturę w C."""
|
||||
|
||||
from weather import Weather
|
||||
|
||||
weather = Weather()
|
||||
|
||||
miasto ='Gdynia'
|
||||
location = weather.lookup_by_location(miasto)
|
||||
|
||||
condition = location.condition()
|
||||
|
||||
data = condition.date()
|
||||
dzien_slownie = data[0:3]
|
||||
dzien = data[5:7]
|
||||
miesiac = data[8:11]
|
||||
rok = data[12:16]
|
||||
|
||||
def day_to_dzien_conv(n):
|
||||
if n == 'Mon':
|
||||
n = n.replace('Mon','Poniedzialek')
|
||||
return n
|
||||
if n == 'Tue':
|
||||
n = n.replace('Tue', 'Wtorek')
|
||||
return n
|
||||
if n == 'Wed':
|
||||
n = n.replace('Wed', 'Sroda')
|
||||
return n
|
||||
if n== "Thu":
|
||||
n = n.replace('Thu','Czwartek')
|
||||
return n
|
||||
if n == 'Fri':
|
||||
n = n.replace('Fri', 'Piątek')
|
||||
return n
|
||||
if n == 'Sat':
|
||||
n = n.replace('Sat', 'Sobota')
|
||||
return n
|
||||
if n == 'Sun':
|
||||
n = n.replace('Sun', 'Niedziela')
|
||||
return n
|
||||
|
||||
dzien_slownie = day_to_dzien_conv(dzien_slownie)
|
||||
|
||||
|
||||
def month_to_miesiac_conv(z):
|
||||
if z == 'Jan':
|
||||
z = z.replace('Jan','Styczen')
|
||||
return z
|
||||
if z == 'Feb':
|
||||
z = z.replace('Feb', 'Luty')
|
||||
return z
|
||||
if z == 'Mar':
|
||||
z = z.replace('Mar', 'Marzec')
|
||||
return z
|
||||
if z== "Apr":
|
||||
z = z.replace('Apr','Kwiecien')
|
||||
return z
|
||||
if z == 'May':
|
||||
z = z.replace('May', 'Maj')
|
||||
return z
|
||||
if z == 'Jun':
|
||||
z = z.replace('Jun', 'Czerwiec')
|
||||
return z
|
||||
if z == 'Jul':
|
||||
z = z.replace('Jul', 'Lipiec')
|
||||
return z
|
||||
if z == 'Aug':
|
||||
z = z.replace('Aug', 'Sierpien')
|
||||
return z
|
||||
if z == 'Sep':
|
||||
z = z.replace('Sep', 'Wrzesien')
|
||||
return z
|
||||
if z == 'Oct':
|
||||
z = z.replace('Oct', 'Pazdziernik')
|
||||
return z
|
||||
if z == 'Nov':
|
||||
z = z.replace('Nov', 'Listopad')
|
||||
return z
|
||||
if z == 'Dec':
|
||||
z = z.replace('Dec', 'Grudzien')
|
||||
return z
|
||||
|
||||
miesiac = month_to_miesiac_conv(miesiac)
|
||||
|
||||
print(f"Aktualna pogoda w mieście: {miasto}")
|
||||
print(f'Data: {dzien_slownie}, {dzien}-{miesiac}-{rok}')
|
||||
print(f'Warunki (ang.): {condition.text()}')
|
||||
|
||||
fahrenhait = condition.temp()
|
||||
|
||||
def temp_conversion(fahrenhait):
|
||||
celsius = round(((int(fahrenhait) - 32) * 5/9),1)
|
||||
return (f'Temperatura: {celsius} C')
|
||||
|
||||
print(temp_conversion(fahrenhait))
|
||||
|
||||
temp_min = []
|
||||
date_temp_min = []
|
||||
|
||||
forecasts = location.forecast()
|
||||
for forecast in forecasts:
|
||||
temp_min.append(forecast.low())
|
||||
date_temp_min.append(forecast.date())
|
||||
|
||||
minimum = min(temp_min)
|
||||
indeks = temp_min.index(minimum)
|
||||
data_miminum = date_temp_min.pop(indeks)
|
||||
|
||||
|
||||
dzien_przew = data_miminum[0:2]
|
||||
miesiac_przew = data_miminum[3:6]
|
||||
rok_przew = data_miminum[7:11]
|
||||
|
||||
miesiac_przew = month_to_miesiac_conv(miesiac_przew)
|
||||
|
||||
print(f'Przewidywalna minimalna {temp_conversion(minimum)} nastąpi dnia {dzien_przew}-{miesiac_przew}-{rok_przew}')
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
"""**ć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``.
|
||||
* Wykorzystaj bibliotekę ``glob`` (https://docs.python.org/2/library/glob.html)
|
||||
* Wyświetl tylko pełną nazwe pliku (wraz z ścieżką).
|
||||
"""
|
||||
|
||||
import glob
|
||||
import os
|
||||
|
||||
path = '\scores'
|
||||
path = os.getcwd()+ path
|
||||
|
||||
file_list = glob.glob(path+'\*npz.bleu')
|
||||
|
||||
list_all = []
|
||||
#key_list = []
|
||||
value_list =[]
|
||||
|
||||
for file in file_list:
|
||||
with open(file, 'r') as f:
|
||||
linijki = f.readlines()
|
||||
for line in linijki:
|
||||
list_all.append(line)
|
||||
|
||||
for i in list_all:
|
||||
i = i.split(',')
|
||||
#a = i[0][0:4]
|
||||
b = i[0][7:]
|
||||
b = float(b)
|
||||
#key_list.append(a)
|
||||
value_list.append(b)
|
||||
|
||||
max_bleau = (max(value_list))
|
||||
index_max_bleu = value_list.index(max_bleau)
|
||||
print(file_list[index_max_bleu])
|
@ -1,16 +1,3 @@
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
#**ćwiczenie 1**
|
||||
#Napisz funckję ``is_numeric``, która sprawdzi, czy każdy element z przekazanej listy jest typu int lub float. Wykorzystaj funcję ``isinstance()`` (https://docs.python.org/2/library/functions.html#isinstance).
|
||||
|
||||
|
||||
def is_numeric(x):
|
||||
|
||||
for i in x:
|
||||
if (isinstance(i, (int, float)) == True):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
print(is_numeric([5.62,7,8]))
|
@ -1,91 +1,3 @@
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
#**ćwiczenie 2**
|
||||
#Napisz prostą hierarchię klas:
|
||||
# * Klasa bazowa ``Employee``, która będzie zawierać informacje o imieniu i nazwisku pracownika. Ponadto każdy pracownik otrzyma numer ``id``, który będzie unikatowy - atrybut statyczny - counter.
|
||||
#Wykorzystaj do tego atrybut statyczny. Napisz metodę ``get_id``, która zwraca identyfikator pracownika.
|
||||
# * Klasy pochodna: ``Recruiter``, która ma dodatkową mtodę ``recruit``, która jako parament przyjmuje obiekt ``Employee`` i zapisuje jego ``id`` w liście ``self.recruited``.
|
||||
# * Klasa pochodna ``Programmer``. Klasa ``Programmer`` ma przyjąć w konstruktorze podstawowe informacje (imię i nazwisko) oraz obiekt rekturera. Ponadto stwórz atrybut ``recruiter``, który będzie przechowywać ``id`` rekrutera.
|
||||
|
||||
|
||||
class Employee(object):
|
||||
id = 0
|
||||
lista_id = []
|
||||
|
||||
def __init__(self, name, surname):
|
||||
self.name = name
|
||||
self.surname = surname
|
||||
self.id = Employee.id
|
||||
Employee.id += 1
|
||||
self.lista_id.append(self.id)
|
||||
|
||||
def get_id(self):
|
||||
return(self.id)
|
||||
|
||||
|
||||
class Recruiter(Employee):
|
||||
def __init__(self, name, surname):
|
||||
|
||||
Employee.__init__(self, name, surname)
|
||||
|
||||
self.recruited = []
|
||||
|
||||
def recruit(self, id):
|
||||
|
||||
if id != self.id:
|
||||
if id in Employee.lista_id:
|
||||
self.recruited.append(id)
|
||||
else:
|
||||
print('Nie ma takiego pracownika!')
|
||||
else:
|
||||
print('Rekruter nie może zrekrutować samego siebie!')
|
||||
|
||||
def __str__(self):
|
||||
return (f'Rekruter {self.name} {self.surname} zrekrutowal pracownikow o nastepujacych id: {self.recruited}')
|
||||
|
||||
|
||||
class Programmer(Recruiter):
|
||||
def __init__(self, name, surname, recruiter):
|
||||
Recruiter.__init__(self, name, surname)
|
||||
|
||||
Recruiter.id = recruiter
|
||||
|
||||
def recruited_by_who(self):
|
||||
print (f'Programista {self.name} {self.surname} zostal zrekrutowany przez rekrutera o nastepujacym id: {Recruiter.id}')
|
||||
|
||||
|
||||
|
||||
print('-------------------------')
|
||||
pracownik1 = Employee('Stefan', 'Stefanski')
|
||||
print(pracownik1.name)
|
||||
print(pracownik1.surname)
|
||||
print(pracownik1.get_id())
|
||||
print(pracownik1.id)
|
||||
pracownik2 = Employee('Karol', 'Karolinski')
|
||||
print(pracownik2.name)
|
||||
print(pracownik2.surname)
|
||||
print(pracownik2.get_id())
|
||||
print(pracownik2.id)
|
||||
pracownik3 =Recruiter('Kasia', 'Kasinska')
|
||||
print(pracownik3.name)
|
||||
print(pracownik3.surname)
|
||||
print(pracownik3.id)
|
||||
pracownik3.recruit(5)
|
||||
pracownik3.recruit(0)
|
||||
pracownik3.recruit(1)
|
||||
|
||||
print(pracownik3)
|
||||
|
||||
pracownik4 = Programmer('Bozena','Bozeniasta', 2)
|
||||
print(pracownik4.name)
|
||||
print(pracownik4.surname)
|
||||
print(pracownik4.id)
|
||||
print(pracownik4.get_id())
|
||||
pracownik4.recruited_by_who()
|
||||
|
||||
print('-------------------------')
|
||||
print(Employee.id)
|
||||
|
||||
print(Employee.lista_id)
|
||||
print('-------------------------')
|
108
labs04/task03.py
108
labs04/task03.py
@ -1,111 +1,3 @@
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
""""**ćwiczenie 3 (zadanie domowe) **
|
||||
Stwórz klasę ``Point``, która będzie reprezentować punkt w przestrzeni wielowymiarowej:
|
||||
* Konstruktor ma przyjąc tylko 1 parametr: listę współrzednych. Wykorzystaj funkcję z pierwszego zadania, żeby sprawdzić, czy lista zawiera wyłącznie liczby.
|
||||
* Napisz metodę add, która dida dwa punkty po współrzędnych i zwróci obiekt typu ``Punkt``. Zaimplementuj własny wyjątek ``DimensionError``, który zostaje wyrzucony, jeżeli dodawany punkt ma inny wymiar.
|
||||
* Napisz metodę ``to\_string``, która zwróci łancuch znakowy, który w czytelny sposób przedstawi punkt.
|
||||
* Napisz metodę __len__, która zwróci liczbę współrzędnych punktu. Zobacz, czy możesz teraz wywołać funkcję len na obiekcie typy punkt.
|
||||
* Napisz metodę __str__, która bedzie działać dokładnie tak samo jak metoda ``to_string``. Wyświetl obiekt typy Point korzystając z funkcji print."""
|
||||
|
||||
|
||||
class DimensionError(Exception):
|
||||
"""Klasa wyjątku, który zostaje wyrzucony, jeżeli dodawany punkt ma inny wymiar niż 3."""
|
||||
pass
|
||||
|
||||
|
||||
def is_numeric(x):
|
||||
"""funkcja sprawdzajca czy każdy element z przekazanej listy zawiera tylko liczby"""
|
||||
for i in x:
|
||||
if (isinstance(i, (int, float)) == True):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
|
||||
class Point(object):
|
||||
"""Klasa reprezentujaca punkt"""
|
||||
lista_pktow = []
|
||||
|
||||
def __init__(self, coordinates=list):
|
||||
"""Inicjalizator punktu przyjmuje jako parametr 3-elementowa liste koordynatow"""
|
||||
if isinstance(coordinates, list):
|
||||
if len(coordinates) == 3:
|
||||
if not is_numeric(coordinates):
|
||||
#jesli koordynaty nie zawieraja wartosci liczbowych zostaje wyrzucony wyjatek
|
||||
raise Exception('Lista zawiera wartosci nieliczbowe')
|
||||
|
||||
else:
|
||||
#atrybuty klasy Punkt: coordinates (lista wspolrzednych [x,y,z]); x ; y; z
|
||||
self.coordinates = coordinates
|
||||
self.x = coordinates[0]
|
||||
self.y = coordinates[1]
|
||||
self.z = coordinates[2]
|
||||
self.lista_pktow.append(self.coordinates)
|
||||
else:
|
||||
# jesli punkt ma inny wymiar zostaje wyrzucony wyjatek
|
||||
raise DimensionError('Wspolrzedne musza miec 3 wymiary!')
|
||||
|
||||
else:
|
||||
print('parametrem musi byc lista!')
|
||||
|
||||
def add(punkt1, punkt2):
|
||||
"""metoda add dodaje wspolrzedne obiektow typu punkt i dodaje nowy obiekt punkt"""
|
||||
punkt3 = []
|
||||
if not isinstance(punkt1, Point):
|
||||
if not isinstance(punkt2, Point):
|
||||
#jesli parametry metody add nie sa obiektami typu punkt zostaje wyrzucony komunikat
|
||||
print('zly typ parametru! - parametrem musi byc obiekt typu Punkt')
|
||||
else:
|
||||
print('zly typ parametru! - parametrem musi byc obiekt typu Punkt')
|
||||
else:
|
||||
if punkt1.coordinates and punkt2.coordinates in Point.lista_pktow:
|
||||
#jesli parametry metody add sa obiektami typu punkt - wspolrzedne x,y,z sa sumowane i zostaje zwracany nowy obiekt typu punkt
|
||||
|
||||
punkt3.append(punkt1.x+punkt2.x)
|
||||
punkt3.append(punkt1.y+punkt2.y)
|
||||
punkt3.append(punkt1.z+punkt2.z)
|
||||
return Point(punkt3)
|
||||
|
||||
else:
|
||||
print('Nie ma takich punktow!')
|
||||
|
||||
def __len__(self):
|
||||
"""metoda len zwraca liczbe wspolrzednych - zawsze bedzie 3 bo tak zostalo zdefiniowane w inicjalizatorze"""
|
||||
return len(self.coordinates)
|
||||
|
||||
def to_string(self):
|
||||
"""metoda to_strng przedstawia wspolrzedne w czytelnej postaci"""
|
||||
return (f'Koordynaty punktu: [{self.x}, {self.y}, {self.z}]')
|
||||
|
||||
def __str__(self):
|
||||
"""Wyświetla obiekt typy Point korzystając z funkcji print"""
|
||||
return self.to_string()
|
||||
|
||||
|
||||
|
||||
print('-------')
|
||||
punkta = Point([1,5,6])
|
||||
print(punkta.coordinates)
|
||||
print(Point.lista_pktow)
|
||||
punktb =Point([1,-3,-2])
|
||||
print(punktb.coordinates)
|
||||
print(Point.lista_pktow)
|
||||
|
||||
print(punkta.__len__())
|
||||
print(punkta.z)
|
||||
print('-------')
|
||||
punkt3 = Point.add(punkta,punktb)
|
||||
print(punkt3.coordinates)
|
||||
print(punkt3.z)
|
||||
print(Point.add(punkta,punktb))
|
||||
print('-------')
|
||||
|
||||
print(Point.lista_pktow)
|
||||
|
||||
print(punkta.to_string())
|
||||
print(punktb)
|
||||
print(punkta)
|
||||
|
||||
|
@ -1,28 +1,11 @@
|
||||
"""** zad. 0 **
|
||||
Napisz funkcję ``suma``, która przyjmnie jeden argument: listę liczb i zwróci ich sumę.
|
||||
|
||||
zad.2 Uodpornoj program z zad. 1 w następujący sposób: do programu mogą zostać przekazane argumenty,
|
||||
które nie mają wartości liczbowej (przyjmijmy, że ich wartość to 0).
|
||||
Skorzystaj z mechanizmu wyjątków: złap wyjątek, jeżeli argumenty nie da się skonwertować
|
||||
na liczbę zmiennoprzecinkową."""
|
||||
|
||||
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
def suma(liczby):
|
||||
wynik = 0
|
||||
for i in range(len(liczby)):
|
||||
try:
|
||||
wynik += float(liczby[i])
|
||||
except:
|
||||
wynik += 0
|
||||
return wynik
|
||||
pass
|
||||
|
||||
def main():
|
||||
print(suma([1, 2, 3, 4]))
|
||||
print(summa([1, 2, 3, 4]))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
""""** zad. 1 **
|
||||
Zaimportuj z zadania 0 fukcje ``suma``. Korzystając z tej fukcji i tablicy ``sys.argv``
|
||||
oblicz i wyświetl sumę argumentów, jakie zostały przekazane do programu.
|
||||
Załóź, że argumentami do programu będą tylko liczby zmiennoprzecinkowe."""
|
||||
|
||||
|
||||
import task00
|
||||
import sys
|
||||
|
||||
def main():
|
||||
print(task00.suma(sys.argv[1:]))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -1,16 +0,0 @@
|
||||
|
||||
"""* zad. 2 **
|
||||
Uodpornoj program z zad. 1 w następujący sposób: do programu mogą zostać przekazane argumenty,
|
||||
które nie mają wartości liczbowej (przyjmijmy, że ich wartość to 0).
|
||||
Skorzystaj z mechanizmu wyjątków: złap wyjątek, jeżeli argumenty nie da się skonwertować na
|
||||
liczbę zmiennoprzecinkową."""
|
||||
|
||||
import task00
|
||||
import sys
|
||||
|
||||
def main():
|
||||
print(task00.suma(sys.argv[1:]))
|
||||
#print(task00.suma(['blabla',35.42,24.5]))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -1,23 +0,0 @@
|
||||
"""** zad. 3 **
|
||||
Przekształć rozwiązanie zadania drugiego w taki sposob, żeby korzystało z biblioteki ``argparse``
|
||||
zamiast z z listy ``sys.argv``."""
|
||||
|
||||
import task00
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("float", help="liczby zmiennoprzecinkowe", nargs = '+')
|
||||
args = parser.parse_args()
|
||||
|
||||
liczby = args.float
|
||||
|
||||
print(task00.suma(liczby))
|
||||
|
||||
# print(task00.suma(sys.argv[1:]))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@ -7,7 +7,6 @@ Zwraca liczbę słów, znaków i linii.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
|
||||
def count_lines(text):
|
||||
@ -33,32 +32,7 @@ def wc(text):
|
||||
|
||||
def main():
|
||||
""" main """
|
||||
#print(wc(sys.stdin.read()))
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--l", help="liczba linii", action = 'store_true')
|
||||
parser.add_argument("--w", help="liczba slow", action = 'store_true')
|
||||
parser.add_argument("--c", help="liczba znakow", action = 'store_true')
|
||||
parser.add_argument("file", help="sciezka do pliku", type = argparse.FileType('r'), nargs = '?')
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
if args.file is None:
|
||||
fh_lines = sys.stdin.read()
|
||||
else:
|
||||
fh_lines = args.file.read()
|
||||
|
||||
if args.l:
|
||||
output = count_lines(fh_lines)
|
||||
elif args.w:
|
||||
output = count_words(fh_lines)
|
||||
elif args.c:
|
||||
output = count_chars(fh_lines)
|
||||
elif not (args.l and args.w and args.c):
|
||||
output = wc(fh_lines)
|
||||
|
||||
print(output)
|
||||
|
||||
print(wc(sys.stdin.read()))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -1,87 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""*(dodatkowe)*: Korzystając z pakietu *sklearn* zbuduj model regresji liniowej,
|
||||
która będzie wyznaczać cenę mieszkania na podstawie wielkości mieszkania i liczby pokoi."""
|
||||
|
||||
#import bibliotek
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import sklearn
|
||||
from sklearn import linear_model
|
||||
from sklearn.model_selection import train_test_split
|
||||
from sklearn.metrics import mean_squared_error
|
||||
import math
|
||||
|
||||
#wczytanie danych
|
||||
dane = pd.read_csv('mieszkania.csv', sep = ',', encoding = 'utf-8')
|
||||
dane = pd.DataFrame(dane)
|
||||
|
||||
#analiza korelacji
|
||||
print(dane.corr())
|
||||
#korelacja niewielka dodatnia pomiedzy SqrMeters, a Expected = 0.109640
|
||||
#korelacja niewielka dodatnia pomiedzy Rooms, a Expected = 0.081177
|
||||
#niska korelaje pokazuje wykres rozrzutu
|
||||
dane.plot.scatter(x='SqrMeters', y='Expected')
|
||||
plt.show()
|
||||
|
||||
#data preparation
|
||||
#X -independent variables
|
||||
#Y -dependent variable
|
||||
|
||||
X = dane[['SqrMeters', 'Rooms' ]]
|
||||
X= pd.DataFrame(X)
|
||||
|
||||
Y = dane['Expected']
|
||||
|
||||
#splitting data into a training and test set:
|
||||
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20, random_state=1)
|
||||
|
||||
#train LinearRegression model using the training set of data
|
||||
lm = linear_model.LinearRegression()
|
||||
lm.fit(X_train, Y_train)
|
||||
|
||||
# coefficients of the model
|
||||
for idx, col_name in enumerate(X_train.columns):
|
||||
print("The coefficient for {} is {}".format(col_name, lm.coef_[idx]))
|
||||
|
||||
# intercept of the model
|
||||
intercept = lm.intercept_
|
||||
print("The intercept for our model is {}".format(intercept))
|
||||
|
||||
#linear model : 123969.05-34261.86*X1+5299.47*X2
|
||||
|
||||
#R^2 proportion of variability in Y that is explained by X in model = accuracy of regression models
|
||||
#It seems that 0.78% of the variability in Y can be explained using X
|
||||
print(lm.score(X_test, Y_test))
|
||||
|
||||
#predykcja
|
||||
#comparing the prediction for the test data set (data not used for training) with the ground truth for the data test set
|
||||
y_predict = lm.predict(X_test)
|
||||
|
||||
lm_mse = mean_squared_error(y_predict, Y_test)
|
||||
|
||||
#It seems that we are an average of 1148825.67 away from the ground truth when making predictions on our test set.
|
||||
print(lm_mse)
|
||||
print(math.sqrt(lm_mse))
|
||||
|
||||
print('--------')
|
||||
#print(X_test['SqrMeters'])
|
||||
#linear model plot - how our model plots against our test data.
|
||||
plt.scatter(X_test['SqrMeters'], Y_test, color='black')
|
||||
plt.plot(X_test['SqrMeters'], y_predict, color='blue', linewidth=2)
|
||||
|
||||
plt.scatter(X_test['SqrMeters'], Y_test, color='black')
|
||||
plt.plot(X_test['SqrMeters'], y_predict, color='blue', linewidth=2)
|
||||
|
||||
plt.xticks(())
|
||||
plt.yticks(())
|
||||
|
||||
plt.show()
|
||||
|
||||
#prediction using made up data
|
||||
# SqrMeters:45
|
||||
# Rooms: 3
|
||||
print(lm.predict([[45, 3]]))
|
||||
# Expected price: 259659.47
|
111
labs06/task02.py
111
labs06/task02.py
@ -1,45 +1,16 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import scipy.stats as stats
|
||||
import sklearn
|
||||
from sklearn import linear_model
|
||||
|
||||
|
||||
def wczytaj_dane():
|
||||
"""Napisz funkcje, która wczyta zestaw danych z pliku *mieszkania.csv* i zwróci obiekt typu *DataFrame*.
|
||||
Jeżeli wszystko zostało zrobione poprawnie,powinno się wyśtwietlić 5 pierwszych wierszy."""
|
||||
|
||||
flat_data = pd.read_csv('mieszkania.csv', sep = ',', encoding = 'utf-8')
|
||||
flat_data = pd.DataFrame(flat_data)
|
||||
|
||||
return flat_data
|
||||
pass
|
||||
|
||||
def most_common_room_number(dane):
|
||||
"""Uzupełnij funkcję ``most_common_room_number``, która zwróci jaka jest najpopularniejsza liczba pokoi w ogłoszeniach.
|
||||
Funkcji powinna zwrócić liczbę całkowitą."""
|
||||
|
||||
pokoje = dane['Rooms']
|
||||
return(pokoje.value_counts(sort=True).index[0])
|
||||
pass
|
||||
|
||||
def cheapest_flats(dane, n):
|
||||
"""Uzupełnij kod w funkcji ``cheapest_flats(dane, n)``, która wzróci *n* najtańszych ofert mieszkań.
|
||||
Wzrócony obiekt typu ``DataFrame``"""
|
||||
|
||||
posortowane = dane.sort_values(by='Expected')
|
||||
ceny = posortowane['Expected']
|
||||
return(ceny.head(n).to_frame())
|
||||
|
||||
pass
|
||||
|
||||
def find_borough(desc):
|
||||
"""Napisz funkcje ``find_borough(desc)``, która przyjmuje 1 argument typu *string*
|
||||
i zwróci jedną z dzielnic zdefiniowaną w liście ``dzielnice``.
|
||||
Funkcja ma zwrócić pierwszą (wzgledem kolejności) nazwę dzielnicy, która jest zawarta w ``desc``.
|
||||
Jeżeli żadna nazwa nie została odnaleziona, zwróć *Inne*."""
|
||||
|
||||
dzielnice = ['Stare Miasto',
|
||||
'Wilda',
|
||||
'Jeżyce',
|
||||
@ -48,69 +19,23 @@ def find_borough(desc):
|
||||
'Winogrady',
|
||||
'Miłostowo',
|
||||
'Dębiec']
|
||||
for i in dzielnice:
|
||||
if i in desc:
|
||||
return(i)
|
||||
|
||||
return 'Inne'
|
||||
pass
|
||||
|
||||
|
||||
def add_borough(dane):
|
||||
"""Dodaj kolumnę ``Borough``, która będzie zawierać informacje o dzielnicach i powstanie z kolumny ``Localization``.
|
||||
Wykorzystaj do tego funkcję ``find_borough``"""
|
||||
|
||||
lokacja= dane['Location']
|
||||
dzielnice = []
|
||||
for rekord in dane['Location']:
|
||||
new_col = find_borough(rekord)
|
||||
dzielnice.append(new_col)
|
||||
|
||||
dane['Borough'] = dzielnice
|
||||
|
||||
pass
|
||||
|
||||
def write_plot(dane, filename):
|
||||
"""Uzupełnił funkcje ``write_plot``, która zapisze do pliku ``filename`` wykres słupkowy przedstawiający liczbę ogłoszeń
|
||||
mieszkań z podziałem na dzielnice."""
|
||||
|
||||
add_borough(dane)
|
||||
hist_data = dane['Borough'].value_counts()
|
||||
#plt.figure()
|
||||
|
||||
wyplot = hist_data.plot(kind='bar',alpha=0.5, title="Liczba ogłoszeń mieszkań z podziałem na dzielnice", fontsize=5, figsize=(7, 5))
|
||||
wyplot.set_xlabel("Dzielnice")
|
||||
wyplot.set_ylabel("Liczba ogłoszeń")
|
||||
|
||||
#plt.show()
|
||||
|
||||
fig = wyplot.get_figure()
|
||||
fig.savefig(filename)
|
||||
|
||||
pass
|
||||
|
||||
def mean_price(dane, room_number):
|
||||
"""Napisz funkcje ``mean_price``, która zwróci średnią cenę mieszkania ``room_numer``-pokojowego."""
|
||||
|
||||
pokoj = dane.loc[dane['Rooms'] == room_number]
|
||||
return(pokoj['Expected'].agg('mean'))
|
||||
|
||||
pass
|
||||
|
||||
def find_13(dane):
|
||||
"""Uzupełnij funkcje ``find_13``, która zwróci listę dzielnic, które zawierają ofertę mieszkanie na 13 piętrze."""
|
||||
|
||||
add_borough(dane)
|
||||
lista13pietra = []
|
||||
finded = dane['Borough'].loc[dane['Floor'] == 13]
|
||||
for j in finded:
|
||||
lista13pietra.append(j)
|
||||
return lista13pietra
|
||||
pass
|
||||
|
||||
def find_best_flats(dane):
|
||||
"""Napisz funkcje ``find_best_flats``, która zwróci wszystkie ogłoszenia mieszkań, które znajdują się na Winogradach,
|
||||
mają 3 pokoje i są położone na 1 piętrze."""
|
||||
|
||||
add_borough(dane)
|
||||
finded_best = dane.loc[(dane['Floor'] == 1) & (dane['Rooms'] == 3) & (dane['Borough'] == 'Winogrady')]
|
||||
return finded_best
|
||||
|
||||
pass
|
||||
|
||||
def main():
|
||||
dane = wczytaj_dane()
|
||||
@ -120,26 +45,10 @@ def main():
|
||||
.format(most_common_room_number(dane)))
|
||||
|
||||
print("{} to najłądniejsza dzielnica w Poznaniu."
|
||||
.format(find_borough("Grunwald i Jeżyce")))
|
||||
.format(find_borough("Grunwald i Jeżyce"))))
|
||||
|
||||
print("Średnia cena mieszkania 3-pokojowego, to: {}"
|
||||
.format(mean_price(dane, 3)))
|
||||
|
||||
find_borough("Grunwald i Jeżyce")
|
||||
|
||||
print(cheapest_flats(dane, 5))
|
||||
|
||||
print(add_borough(dane))
|
||||
|
||||
write_plot(dane, 'liczbaogloszen.png')
|
||||
|
||||
print(mean_price(dane, 7))
|
||||
|
||||
print(find_13(dane))
|
||||
|
||||
print(find_best_flats(dane))
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user