Compare commits

..

7 Commits

13 changed files with 171 additions and 31 deletions

View File

@ -6,7 +6,13 @@
""" """
def days_in_year(days): def days_in_year(days):
pass if ((days % 4 == 0) and (days % 100 != 0)):
wynik=366
elif (days % 400 == 0):
wynik=366
else:
wynik=365
return wynik
def tests(f): def tests(f):
inputs = [[2015], [2012], [1900], [2400], [1977]] inputs = [[2015], [2012], [1900], [2400], [1977]]

View File

@ -13,7 +13,12 @@ jak 'set', która przechowuje elementy bez powtórzeń.)
def oov(text, vocab): def oov(text, vocab):
pass text = text.lower()
text2 = text.split(' ')
vocab2 = ' '.join(vocab)
vocab2 = vocab2.lower()
vocab2 = vocab2.split(' ')
return (set(text2).difference(set(vocab2)))

View File

@ -7,7 +7,13 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0.
""" """
def sum_from_one_to_n(n): def sum_from_one_to_n(n):
pass if n<1:
return 0
else:
wynik = 0;
for i in range(1,n+1):
wynik = wynik+i;
return wynik
def tests(f): def tests(f):

View File

@ -10,7 +10,12 @@ np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5.
""" """
def euclidean_distance(x, y): def euclidean_distance(x, y):
pass eukl = 0;
for i in range(3):
eukl = eukl+(x[i]-y[i])**2
eukl = eukl**0.5
return eukl
def tests(f): def tests(f):
inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]] inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]]

View File

@ -10,7 +10,15 @@ ma być zwracany napis "It's not a Big 'No!'".
""" """
def big_no(n): def big_no(n):
pass if n<5:
tekst = "It's not a Big 'No!'"
else:
lista=["N"]
for i in range(1,n+1):
lista.append("O")
lista.append("!")
tekst = ''.join(lista)
return tekst
def tests(f): def tests(f):
inputs = [[5], [6], [2]] inputs = [[5], [6], [2]]

View File

@ -6,7 +6,10 @@ Napisz funkcję char_sum, która dla zadanego łańcucha zwraca
sumę kodów ASCII znaków. sumę kodów ASCII znaków.
""" """
def char_sum(text): def char_sum(text):
pass suma = 0
for znak in text:
suma = suma+ord(znak)
return suma
def tests(f): def tests(f):
inputs = [["this is a string"], ["this is another string"]] inputs = [["this is a string"], ["this is another string"]]

View File

@ -7,7 +7,12 @@ przez 3 lub 5 mniejszych niż n.
""" """
def sum_div35(n): def sum_div35(n):
pass suma=0
for i in range(1,n):
if ((i%3)==0 or (i%5)==0):
suma = suma+i
return suma
def tests(f): def tests(f):
inputs = [[10], [100], [3845]] inputs = [[10], [100], [3845]]

View File

@ -9,7 +9,21 @@ Np. leet('leet') powinno zwrócić '1337'.
def leet_speak(text): def leet_speak(text):
pass text2=[]
for znak in text:
if znak == 'e':
text2.append('3')
elif znak == 'l':
text2.append('1')
elif znak == 'o':
text2.append('0')
elif znak == 't':
text2.append('7')
else:
text2.append(znak)
text2 = ''.join(text2)
return text2
def tests(f): def tests(f):

View File

@ -9,7 +9,17 @@ na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
def pokemon_speak(text): def pokemon_speak(text):
pass text1 = []
for znak in text:
text1.append(znak)
text2 =[]
for i in range(0, len(text)):
if (i%2)==0:
text2.append(text1[i].upper())
else:
text2.append(text1[i])
text2 = ''.join(text2)
return text2
def tests(f): def tests(f):

View File

@ -9,7 +9,13 @@ Oba napisy będą składać się wyłacznie z małych liter.
""" """
def common_chars(string1, string2): def common_chars(string1, string2):
pass wspolne_znaki = set(string1).intersection(set(string2))
wspolne_znaki = set(wspolne_znaki).difference(set(' '))
wspolne_znaki_tbl = []
for znak in wspolne_znaki:
wspolne_znaki_tbl.append(znak)
wspolne_znaki_tbl.sort()
return wspolne_znaki_tbl
def tests(f): def tests(f):

22
labs04/task05.py Normal file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import glob
lista_plikow = glob.glob('J:\PycharmProjects\Python2018\labs04\scores\*')
wyniki=[]
for plik in lista_plikow:
tekst = open(plik, 'r')
tmp=[]
for linia in tekst.readlines():
tmp=(linia.strip()).split(' ')
wyniki.append(float(tmp[2].replace(',','')))
max=wyniki[0]
for i in range(1, len(wyniki)):
if wyniki[i]>max:
max=wyniki[i]
max_iter = i
print(lista_plikow[max_iter])

View File

@ -1,14 +1,22 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import pandas as pd
from matplotlib import pyplot as plt
from sklearn import linear_model
def wczytaj_dane(): def wczytaj_dane():
pass data = pd.read_csv("J:/PycharmProjects/Python2018/labs06/mieszkania.csv")
return pd.DataFrame(data)
def most_common_room_number(dane): def most_common_room_number(dane):
pass dane2 = dane['Rooms'].value_counts().head(1)
pokoje = int(dane2.index[0])
return pokoje
def cheapest_flats(dane, n): def cheapest_flats(dane, n):
pass result = dane.sort_values('Expected').head(n)
return result
def find_borough(desc): def find_borough(desc):
dzielnice = ['Stare Miasto', dzielnice = ['Stare Miasto',
@ -19,23 +27,55 @@ def find_borough(desc):
'Winogrady', 'Winogrady',
'Miłostowo', 'Miłostowo',
'Dębiec'] 'Dębiec']
pass for i in range(0,len(dzielnice)):
if dzielnice[i] in desc:
result = dzielnice[i]
break
else:
result = 'Inne'
return result
def add_borough(dane): def add_borough(dane):
pass dane['Borough'] = dane['Location'].apply(find_borough)
return dane
def write_plot(dane, filename): def write_plot(dane, filename):
pass dane['Borough'].value_counts().plot(kind='barh')
plt.savefig('J:/PycharmProjects/Python2018/labs06/'+filename)
return 0
def mean_price(dane, room_number): def mean_price(dane, room_number):
pass dane2 = dane[dane.Rooms == room_number]
srednia = round(dane2.Expected.mean(),2)
return srednia
def find_13(dane): def find_13(dane):
pass dane2 = dane[dane.Floor == 13]
lista_dzielnic = dane2['Borough'].unique()
return lista_dzielnic
def find_best_flats(dane): def find_best_flats(dane):
pass dane2 = dane[(dane['Borough']=='Winogrady') & (dane['Rooms']==3) & (dane['Floor']==1)]
return dane2
def reg_lin(dane, metraz, pokoje):
reg = linear_model.LinearRegression()
reg.fit(dane[['SqrMeters', 'Rooms']], dane['Expected'])
result = reg.predict(pd.DataFrame([(metraz, pokoje)], columns=['var1', 'var2']))
return result
"""
dane = wczytaj_dane()
print(most_common_room_number(dane))
print(cheapest_flats(dane, 2))
print(find_borough('Winogrady i Jeżyce'))
add_borough(dane)
write_plot(dane, 'wykres')
print(mean_price(dane, 3))
print(find_13(dane))
print(find_best_flats(dane).shape[0])
print(reg_lin(dane, 60, 3))
"""
def main(): def main():
dane = wczytaj_dane() dane = wczytaj_dane()
@ -45,7 +85,7 @@ def main():
.format(most_common_room_number(dane))) .format(most_common_room_number(dane)))
print("{} to najłądniejsza dzielnica w Poznaniu." 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: {}" print("Średnia cena mieszkania 3-pokojowego, to: {}"
.format(mean_price(dane, 3))) .format(mean_price(dane, 3)))

View File

@ -4,77 +4,87 @@
""" """
1. Zaimportuj bibliotkę pandas jako pd. 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 zniennej data.
""" """
data = pd.read_csv("J:/PycharmProjects/Python2018/labs06/311.csv", low_memory=False)
""" """
3. Wyświetl 5 pierwszych wierszy z data. 3. Wyświetl 5 pierwszych wierszy z data.
""" """
#print(data.head())
""" """
4. Wyświetl nazwy kolumn. 4. Wyświetl nazwy kolumn.
""" """
#print(data.columns)
""" """
5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy. 5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy.
""" """
#print(data.shape)
""" """
6. Wyświetl kolumnę 'City' z powyższego zbioru danych. 6. Wyświetl kolumnę 'City' z powyższego zbioru danych.
""" """
#print(data['City'])
""" """
7. Wyświetl jakie wartoścu przyjmuje kolumna '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.
""" """
#print(data['City'].value_counts())
""" """
9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia. 9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia.
""" """
#data2 = pd.DataFrame(data['City'].value_counts())
#print(data2.info())
#print(data2.head())
""" """
10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN. 10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN.
""" """
#print(data[data['City'].isnull()].shape[0])
""" """
11. Wyświetl data.info() 11. Wyświetl data.info()
""" """
#data.info()
""" """
12. Wyświetl tylko kolumny Borough i Agency i tylko 5 ostatnich linii. 12. Wyświetl tylko kolumny Borough i Agency i tylko 5 ostatnich linii.
""" """
#print(data[['Borough', 'Agency']].tail())
""" """
13. Wyświetl tylko te dane, dla których wartość z kolumny Agency jest równa 13. Wyświetl tylko te dane, dla których wartość z kolumny Agency jest równa
NYPD. Zlicz ile jest takich przykładów. NYPD. Zlicz ile jest takich przykładów.
""" """
#print(data[data['Agency']=='NYPD'].shape[0])
""" """
14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude. 14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude.
""" """
#print(data['Longitude'].min())
#print(data['Longitude'].max())
""" """
15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude. 15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude.
""" """
#data['diff'] = data['Longitude']+data['Latitude']
#print(data[-3:].head())
""" """
16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest 16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest
równe NYPD. równe NYPD.
""" """
#print(data[data['Agency']=='NYPD']['Descriptor'].value_counts())