Compare commits

..

17 Commits

Author SHA1 Message Date
c5b58c514b Dodaj 'labs06/task02.py' 2018-06-23 16:42:09 +00:00
s407545
b5dbb6ca08 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	labs02/task08.py
2018-06-03 11:15:26 +02:00
s407545
aaa6fd05a5 rozwiazanie labs06 2018-06-03 11:10:53 +02:00
s407545
c547ed0502 Merge branch 'master' of https://git.wmi.amu.edu.pl/tdwojak/Python2018 2018-06-03 09:59:59 +02:00
86acfcd661 Update 'labs04/cw5.py' 2018-06-03 06:21:19 +00:00
2f180bdafd rozwiazanie cw5 2018-06-02 20:23:24 +00:00
776abbce40 rozwiazanie zad11 2018-06-02 20:04:15 +00:00
493056edb6 zadanie10 2018-06-02 20:03:33 +00:00
c5944a3f95 Update 'labs02/task09.py' 2018-06-02 20:02:05 +00:00
4a42679729 Update 'labs02/task08.py' 2018-06-02 20:00:58 +00:00
s407545
9b66c64e59 rozwiązanie zad.6 2018-05-13 12:51:32 +02:00
s407545
9bced26d9f rozwiązanie zad.5 2018-05-13 12:29:59 +02:00
s407545
228375a4b2 rozwiązanie zad.4 2018-05-13 12:14:04 +02:00
s407545
1e73032203 rozwiązanie zad.7 2018-05-13 10:09:17 +02:00
s407545
d5816599fd rozwiązania 2018-05-13 09:59:25 +02:00
s407545
36af9a48a9 zadania 1-rozwiazane 2018-05-13 09:14:14 +02:00
s407545
95eba0f25e rozwiązanie zadania 1 2018-05-13 08:45:57 +02:00
21 changed files with 209 additions and 59 deletions

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -168,7 +168,7 @@ for i in range(5):# range[5] = [0,1,2,3,4]
for zmienna in lista: for zmienna in lista:
# operacje do wykonania w pętli # operacje do wykonania w pętli
pass
# In[ ]: # In[ ]:

View File

@ -9,48 +9,59 @@ Zadania wprowadzające do pierwszych ćwiczeń.
""" """
Wypisz na ekran swoje imię i nazwisko. Wypisz na ekran swoje imię i nazwisko.
""" """
print("Andrea Góralczyk")
""" """
Oblicz i wypisz na ekran pole koła o promienie 10. Jako PI przyjmij 3.14. Oblicz i wypisz na ekran pole koła o promienie 10. Jako PI przyjmij 3.14.
""" """
pi= 3.14
p=pi*(10**2)
print("pole=",p )
""" """
Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3. Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3.
""" """
pole_kwadratu=3**2
print(pole_kwadratu)
""" """
Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców. Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców.
Wynik przypisz do zmiennej `owoce`. Wynik przypisz do zmiennej `owoce`.
""" """
owoce= ["truskawki", "gruszki", "banan"]
print(owoce)
""" """
Dodaj do powyższej listy jako nowy element "pomidor". Dodaj do powyższej listy jako nowy element "pomidor".
""" """
owoce.append("pomidor")
print(owoce)
""" """
Usuń z powyższej listy drugi element. Usuń z powyższej listy drugi element.
""" """
owoce.pop(1)
print(owoce)
""" """
Rozszerz listę o tablice ['Jabłko', "Gruszka"]. Rozszerz listę o tablice ['Jabłko', "Gruszka"].
""" """
owoce.extend(["Jabłko","Gruszka"])
print(owoce)
""" """
Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu. Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu.
""" """
print("bez pierwszego i ostatniego elementu", owoce[1:-1])
""" """
Wyświetl co trzeci element z listy owoce. Wyświetl co trzeci element z listy owoce.
""" """
print("co trzeci element", owoce[::3])
""" """
Stwórz pusty słownik i przypisz go do zmiennej magazyn. 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, Dodaj do słownika magazyn owoce z listy owoce, tak, aby owoce były kluczami,
zaś wartościami były równe 5. zaś wartościami były równe 5.
""" """
for i in owoce:
magazyn[i]=[5]
print(magazyn)

View File

@ -7,7 +7,8 @@ która zawiera tylko elementy z list o parzystych indeksach.
""" """
def even_elements(lista): def even_elements(lista):
pass
return lista[::2]
def tests(f): def tests(f):

View File

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

View File

@ -11,11 +11,15 @@ litery. (OOV = out of vocabulary) (W pythonie istnieje struktura danych tak
jak 'set', która przechowuje elementy bez powtórzeń.) jak 'set', która przechowuje elementy bez powtórzeń.)
""" """
from sets import Set
def oov(text, vocab): def oov(text, vocab):
pass rozdzielenie=text.split(' ')
slowa= set()
slowa= (slowa for slowa in rozdzielenie if slowa not in vocab)
return slowa
def tests(f): def tests(f):
inputs = [("this is a string , which i will use for string testing", inputs = [("this is a string , which i will use for string testing",

View File

@ -7,7 +7,14 @@ 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
suma= 0
if n < 1:
return 0
else:
for i in range(n+1):
suma= suma+i
return suma
def tests(f): def tests(f):

View File

@ -9,8 +9,15 @@ trzyelementowe listy liczb zmiennoprzecinkowych.
np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5. 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 odleglosc = 0
for i in range(3):
odleglosc = odleglosc + (x[i] - y[i]) ** 2
odleglosc = cmath.sqrt(odleglosc)
return odleglosc
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:
zwraca= "It's not a Big 'No!'"
return zwraca
else:
zwraca=''
for i in range(n):
zwraca=zwraca + 'O'
return ("N"+ zwraca+ "!")
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,15 @@ przez 3 lub 5 mniejszych niż n.
""" """
def sum_div35(n): def sum_div35(n):
pass
if n == 0:
return 0
else:
suma=0
for i in range(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

@ -7,10 +7,18 @@ na podobnie wyglądające cyfry: 'e' na '3', 'l' na '1', 'o' na '0', 't' na '7'.
Np. leet('leet') powinno zwrócić '1337'. Np. leet('leet') powinno zwrócić '1337'.
""" """
def leet_speak(text): def leet_speak(text):
pass
for i in range(len(text)):
if ((text[i]) == 'e'):
text = text[:i] + '3' + text[i + 1:]
elif ((text[i]) == 'l'):
text = text[:i] + '1' + text[i + 1:]
elif ((text[i]) == 'o'):
text = text[:i] + '0' + text[i + 1:]
elif ((text[i]) == 't'):
text = text[:i] + '7' + text[i + 1:]
return text
def tests(f): def tests(f):
inputs = [['leet'], ['do not want']] inputs = [['leet'], ['do not want']]

View File

@ -9,8 +9,12 @@ na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
def pokemon_speak(text): def pokemon_speak(text):
pass
for i in range(len(text)):
if ((i % 2) == 0):
text = text[:i] + (text[i].upper()) + text[i + 1:]
return text
def tests(f): def tests(f):
inputs = [['pokemon'], ['do not want'], ['POKEMON']] inputs = [['pokemon'], ['do not want'], ['POKEMON']]

View File

@ -9,7 +9,24 @@ Oba napisy będą składać się wyłacznie z małych liter.
""" """
def common_chars(string1, string2): def common_chars(string1, string2):
pass n= string1
m= string2
li = []
if len(n) >= len(m):
for i in range(len(n)):
for j in range(len(m)):
if n[i] == m[j]:
li.append(n[i])
else:
for i in range(len(m)):
for j in range(len(n)):
if m[i] == n[j]:
li.append(m[i])
li = list(set(li))
li.remove(' ')
li.sort()
return li
def tests(f): def tests(f):

3
labs02/test_task.py Executable file → Normal file
View File

@ -6,7 +6,8 @@ def suma(a, b):
""" """
Napisz funkcję, która zwraca sumę elementów. Napisz funkcję, która zwraca sumę elementów.
""" """
return 0 wynik= a+b
return wynik
def tests(f): def tests(f):
inputs = [(2, 3), (0, 0), (1, 1)] inputs = [(2, 3), (0, 0), (1, 1)]

View File

@ -5,11 +5,6 @@
**ćwiczenie 0** **ćwiczenie 0**
Uruchom programy z katalogu `examples` i zobacz ich kod. Spróbuj odgadnąć, co robią konkretne linie w kodzie. Uruchom programy z katalogu `examples` i zobacz ich kod. Spróbuj odgadnąć, co robią konkretne linie w kodzie.
**ćwiczenie 1**
Każdy obiekt w Pythonie na wbudowaną funkcję ``id()``, która zwraca liczbę, która jest unikatowa i stała dla obiektu. Pozwala ona w prosty sposób sprawdzić, który obiekt jest *mutable*a, który *immutable*: jeżeli po wykonaniu operacji, zwracana liczba jest stała, to oznacza, że obiekt jest *mutable*. Sprawdź zachowanie funkcji na obiektach typy:
* lista,
* napis (string),
* liczba zmiennoprzecinkowa.
**ćwiczenie 2** **ć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)``). 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)``).

17
labs04/cw5.py Normal file
View File

@ -0,0 +1,17 @@
import glob
sciezka = "/scores/model.iter*.npz.bleu"
for file in glob.glob(sciezka):
with open(file, 'r') as plik:
for line in plik.readlines():
bleu = float(line[line.find("=")+ 1:line.find(",")])
if bleu >0:
max = bleu
maxi = file
plik.close()
print ( maxi )

0
labs04/examples/06_execution_time.py Executable file → Normal file
View File

0
labs04/examples/25_ip2geolocation.py Executable file → Normal file
View File

59
labs06/task02.py Executable file → Normal file
View File

@ -1,16 +1,25 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import pandas as pd
def wczytaj_dane(): def wczytaj_dane():
pass
data = pd.read_csv('mieszkania.csv', sep = ',')
return data
def most_common_room_number(dane): def most_common_room_number(dane):
pass
x= dane['Rooms'].value_counts()
return(x.index.values[0])
def cheapest_flats(dane, n): def cheapest_flats(dane, n):
pass
cheap=dane.sort_values('Expected')
return (cheap.head(n))
def find_borough(desc): def find_borough(desc):
dzielnice = ['Stare Miasto', dzielnice = ['Stare Miasto',
'Wilda', 'Wilda',
'Jeżyce', 'Jeżyce',
@ -19,23 +28,45 @@ def find_borough(desc):
'Winogrady', 'Winogrady',
'Miłostowo', 'Miłostowo',
'Dębiec'] 'Dębiec']
pass for dzielnica in dzielnice:
if dzielnica in desc:
return dzielnica
return 'Inne'
def add_borough(dane): def add_borough(dane):
pass
values = []
for i in dane['Location']:
values.append(find_borough(i))
tempSeries = pd.Series(values)
dane['Borough'] = tempSeries.values
def write_plot(dane, filename): def write_plot(dane, filename):
pass
add_borough(dane)
plot = dane['Borough'].value_counts()
wykres = plot.plot(kind='bar', alpha=0.5, title='Liczba mieszkań z podziałem na dzielnice', fontsize=7, figsize=(8,8))
wykres.set_ylabel('Liczba ogloszeń')
wykres.set_xlabel('Dzielnice')
plik = wykres.get_figure()
plik.savefig(filename)
def mean_price(dane, room_number): def mean_price(dane, room_number):
pass
price = dane.loc[dane['Rooms'] == room_number]
return price['Expected'].mean()
def find_13(dane): def find_13(dane):
pass
x = dane.loc[dane['Floor'] == 13]
return list(set(x['Borough'].tolist()))
def find_best_flats(dane): def find_best_flats(dane):
pass
the_best = dane.loc[dane['Borough'] == 'Winogrady' & dane['Rooms'] == 3 & dane['Floor'] == 1]
return the_best
def main(): def main():
dane = wczytaj_dane() dane = wczytaj_dane()
@ -44,11 +75,13 @@ def main():
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}" print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}"
.format(most_common_room_number(dane))) .format(most_common_room_number(dane)))
print("{} to najłądniejsza dzielnica w Poznaniu." print("{} to najładniejsza 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)))
write_plot(dane, 'ogloszenia.png')
if __name__ == "__main__": if __name__ == "__main__":
main() main()

45
labs06/tasks.py Executable file → Normal file
View File

@ -4,77 +4,92 @@
""" """
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("/home/students/s407545/PycharmProjects/Python2018/labs06/311.csv", low_memory=False)
""" """
3. Wyświetl 5 pierwszych wierszy z data. 3. Wyświetl 5 pierwszych wierszy z data.
""" """
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.
""" """
shape= data.shape
print(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'.
""" """
data.City.unique()
""" """
8. Wyświetl tabelę rozstawną kolumny City. 8. Wyświetl tabelę rozstawną kolumny City.
""" """
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.
""" """
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.
""" """
x= data['City'].isnull().sum()
x= data[data['City']=='NYPD']
shape=x.shape
rows= shape[0]
print(rows)
""" """
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.
""" """
y= data[data['Agency']=='NYPD']
shape=y.shape
rows= shape[0]
print(rows)
""" """
14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude. 14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude.
""" """
x=data['Longitude']
x.min()
x.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.
""" """
x=data['Longitude']
y=data['Latitude']
data['diff']= x+y
print(data.columns)
""" """
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.
""" """
y= data[data['Agency']=='NYPD']
y.Descriptor.value_counts()