diff --git a/homework/task07.py b/homework/task07.py index 80cbd37..fe9192e 100644 --- a/homework/task07.py +++ b/homework/task07.py @@ -1,22 +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): - pass - -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)) +#!/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)) diff --git a/homework/task08.py b/homework/task08.py index 252b10d..521078b 100644 --- a/homework/task08.py +++ b/homework/task08.py @@ -1,24 +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): - pass - -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)) - +#!/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)) \ No newline at end of file diff --git a/homework/task09.py b/homework/task09.py index 9045054..1a5c798 100644 --- a/homework/task09.py +++ b/homework/task09.py @@ -1,26 +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): - pass - - -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)) +#!/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)) \ No newline at end of file diff --git a/homework/task10.py b/homework/task10.py index 58d40d2..15506d5 100644 --- a/homework/task10.py +++ b/homework/task10.py @@ -1,26 +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): - pass - - -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)) +#!/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)) \ No newline at end of file diff --git a/homework/task11.py b/homework/task11.py index 7d36767..fa15049 100644 --- a/homework/task11.py +++ b/homework/task11.py @@ -1,26 +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): - pass - - -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)) +#!/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)) \ No newline at end of file