Compare commits

...

2 Commits

Author SHA1 Message Date
s45168 cb16eadda1 Upload files to 'homework' 2017-12-01 22:32:44 +00:00
s45168 95733aa1aa test 2017-11-19 15:44:41 +01:00
9 changed files with 196 additions and 2 deletions

32
homework/task07.py Normal file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Napisz funkcję char_sum, która dla zadanego łańcucha zwraca
sumę kodów ASCII znaków.
"""
def char_sum(text):
suma_ascii = 0
lista_ascii = []
# lista_znaków = list(text)
for znak in text:
znak_ascii = ord(znak)
lista_ascii.append(znak_ascii)
for znak2 in lista_ascii:
suma_ascii = suma_ascii + znak2
return suma_ascii
# print('suma ASCII: ', suma_ascii)
def tests(f):
inputs = [["this is a string"], ["this is another string"]]
outputs = [1516, 2172]
for input, output in zip(inputs, outputs):
if f(*input) != output:
return "ERROR: {}!={}".format(f(*input), output)
break
return "TESTS PASSED"
if __name__ == "__main__":
print(tests(char_sum))

31
homework/task08.py Normal file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Napisz funkcję sum_div35(n), która zwraca sumę wszystkich liczb podzielnych
przez 3 lub 5 mniejszych niż n.
"""
def sum_div35(n):
lista_wejsciowa = range(n)
lista_wyjsciowa = []
suma = 0
for i in lista_wejsciowa:
if i % 3 == 0 or i % 5 == 0:
lista_wyjsciowa.append(i)
for j in lista_wyjsciowa:
suma = suma + j
return suma
def tests(f):
inputs = [[10], [100], [3845]]
outputs = [23, 2318, 3446403]
for input, output in zip(inputs, outputs):
if f(*input) != output:
return "ERROR: {}!={}".format(f(*input), output)
break
return "TESTS PASSED"
if __name__ == "__main__":
print(tests(sum_div35))

41
homework/task09.py Normal file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Napisz funkcję leet_speak, która podmienia w podanym napisie niektóre litery
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):
strin = []
for znak in text:
if znak == 'e':
znak1 = '3'
strin.append(znak1)
elif znak == 'l':
znak1 = '1'
strin.append(znak1)
elif znak == 'o':
znak1 = '0'
strin.append(znak1)
elif znak == 't':
znak1 = '7'
strin.append(znak1)
else:
strin.append(znak)
return ''.join(strin)
def tests(f):
inputs = [['leet'], ['do not want']]
outputs = ['1337', 'd0 n07 wan7']
for input, output in zip(inputs, outputs):
if f(*input) != output:
return "ERROR: {}!={}".format(f(*input), output)
break
return "TESTS PASSED"
if __name__ == "__main__":
print(tests(leet_speak))

34
homework/task10.py Normal file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
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):
i = 0
new_string = []
for j in text:
if i % 2 == 0:
new_string.append(j.upper())
else:
new_string.append(j)
i = i + 1
return ''.join(new_string)
def tests(f):
inputs = [['pokemon'], ['do not want'], ['POKEMON']]
outputs = ['PoKeMoN', 'Do nOt wAnT', 'POKEMON']
for input, output in zip(inputs, outputs):
if f(*input) != output:
return "ERROR: {}!={}".format(f(*input), output)
break
return "TESTS PASSED"
if __name__ == "__main__":
print(tests(pokemon_speak))

42
homework/task11.py Normal file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Napisz funkcję common_chars(string1, string2), która zwraca alfabetycznie
uporządkowaną listę wspólnych liter z lańcuchów string1 i string2.
Oba napisy będą składać się wyłacznie z małych liter.
"""
def common_chars(string1, string2):
output_list1 = []
output_list2 = []
for j in string1:
if j in string2:
output_list1.append(j)
#print(output_list1)
for i in output_list1:
if i not in output_list2:
output_list2.append(i)
for k in output_list2:
if k == ' ':
output_list2.remove(k)
#return output_list2
output_list3 = sorted(output_list2)
#print(output_list3)
return output_list3
#common_chars("this is a string", "ala ma kota")
def tests(f):
inputs = [["this is a string", "ala ma kota"]]
outputs = [['a', 't']]
for input, output in zip(inputs, outputs):
if f(*input) != output:
return "ERROR: {}!={}".format(f(*input), output)
break
return "TESTS PASSED"
if __name__ == "__main__":
print(tests(common_chars))

View File

@ -8,7 +8,7 @@ która zawiera tylko elementy z list o parzystych indeksach.
def even_elements(lista):
pass
return lista[::2]
def tests(f):
inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]]

View File

@ -5,8 +5,14 @@
Napisz funkcję days_in_year zwracającą liczbę dni w roku (365 albo 366).
"""
def days_in_year(days):
def days_in_year(year):
pass
if year % 400 == 0:
return 366
elif year % 4 == 0 and year % 100 != 0:
return 366
else:
return 365
def tests(f):
inputs = [[2015], [2012], [1900], [2400], [1977]]

View File

@ -11,12 +11,18 @@ litery. (OOV = out of vocabulary) (W pythonie istnieje struktura danych tak
jak 'set', która przechowuje elementy bez powtórzeń.)
"""
text = "this is a string , which i will use for string testing"
vocab = [',', 'this', 'is', 'a', 'which', 'for', 'will', 'i']
def oov(text, vocab):
pass
temp_text=text.split(' ')
temp_vocab=vocab.split(' ')
"""
def tests(f):
inputs = [("this is a string , which i will use for string testing",
[',', 'this', 'is', 'a', 'which', 'for', 'will', 'i'])]
@ -30,3 +36,4 @@ def tests(f):
if __name__ == "__main__":
print(tests(oov))
"""

View File

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