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 250 additions and 46 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:
# operacje do wykonania w pętli
pass
# In[ ]:

View File

@ -9,48 +9,59 @@ Zadania wprowadzające do pierwszych ćwiczeń.
"""
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.
"""
pi= 3.14
p=pi*(10**2)
print("pole=",p )
"""
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.
Wynik przypisz do zmiennej `owoce`.
"""
owoce= ["truskawki", "gruszki", "banan"]
print(owoce)
"""
Dodaj do powyższej listy jako nowy element "pomidor".
"""
owoce.append("pomidor")
print(owoce)
"""
Usuń z powyższej listy drugi element.
"""
owoce.pop(1)
print(owoce)
"""
Rozszerz listę o tablice ['Jabłko', "Gruszka"].
"""
owoce.extend(["Jabłko","Gruszka"])
print(owoce)
"""
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.
"""
print("co trzeci element", owoce[::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 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):
pass
return lista[::2]
def tests(f):

View File

@ -6,7 +6,12 @@
"""
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):
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ń.)
"""
from sets import Set
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):
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):
pass
suma= 0
if n < 1:
return 0
else:
for i in range(n+1):
suma= suma+i
return suma
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.
"""
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):
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):
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):
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.
"""
def char_sum(text):
pass
suma = 0
for znak in text:
suma= suma + ord(znak)
return suma
def tests(f):
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):
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):
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'.
"""
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):
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):
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):
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):
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):

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.
"""
return 0
wynik= a+b
return wynik
def tests(f):
inputs = [(2, 3), (0, 0), (1, 1)]

View File

@ -5,11 +5,6 @@
**ćwiczenie 0**
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**
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

87
labs06/task02.py Normal file
View File

@ -0,0 +1,87 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pandas as pd
def wczytaj_dane():
data = pd.read_csv('mieszkania.csv', sep = ',')
return data
def most_common_room_number(dane):
x= dane['Rooms'].value_counts()
return(x.index.values[0])
def cheapest_flats(dane, n):
cheap=dane.sort_values('Expected')
return (cheap.head(n))
def find_borough(desc):
dzielnice = ['Stare Miasto',
'Wilda',
'Jeżyce',
'Rataje',
'Piątkowo',
'Winogrady',
'Miłostowo',
'Dębiec']
for dzielnica in dzielnice:
if dzielnica in desc:
return dzielnica
return 'Inne'
def add_borough(dane):
values = []
for i in dane['Location']:
values.append(find_borough(i))
tempSeries = pd.Series(values)
dane['Borough'] = tempSeries.values
def write_plot(dane, filename):
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):
price = dane.loc[dane['Rooms'] == room_number]
return price['Expected'].mean()
def find_13(dane):
x = dane.loc[dane['Floor'] == 13]
return list(set(x['Borough'].tolist()))
def find_best_flats(dane):
the_best = dane.loc[dane['Borough'] == 'Winogrady' & dane['Rooms'] == 3 & dane['Floor'] == 1]
return the_best
def main():
dane = wczytaj_dane()
print(dane[:5])
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}"
.format(most_common_room_number(dane)))
print("{} to najładniejsza dzielnica w Poznaniu."
.format(find_borough("Grunwald i Jeżyce")))
print("Średnia cena mieszkania 3-pokojowego, to: {}"
.format(mean_price(dane, 3)))
write_plot(dane, 'ogloszenia.png')
if __name__ == "__main__":
main()

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

@ -4,77 +4,92 @@
"""
1. Zaimportuj bibliotkę pandas jako pd.
"""
import pandas as pd
"""
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.
"""
data.head()
"""
4. Wyświetl nazwy kolumn.
"""
print(data.columns)
"""
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.
"""
print(data['City'])
"""
7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'.
"""
data.City.unique()
"""
8. Wyświetl tabelę rozstawną kolumny City.
"""
data.City.value_counts()
"""
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.
"""
x= data['City'].isnull().sum()
x= data[data['City']=='NYPD']
shape=x.shape
rows= shape[0]
print(rows)
"""
11. Wyświetl data.info()
"""
data.info()
"""
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
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.
"""
x=data['Longitude']
x.min()
x.max()
"""
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
równe NYPD.
"""
y= data[data['Agency']=='NYPD']
y.Descriptor.value_counts()