forked from tdwojak/Python2017
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
|
#!/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 dekodowanie(text):
|
||
|
sum = 0
|
||
|
for c in text:
|
||
|
char_ascii = ord(c)
|
||
|
sum += char_ascii
|
||
|
return char_ascii
|
||
|
|
||
|
|
||
|
def char_sum(a):
|
||
|
if isinstance(a, str):
|
||
|
return dekodowanie(a)
|
||
|
elif isinstance(a, list):
|
||
|
overall = 0
|
||
|
for i in a:
|
||
|
overall += dekodowanie(i)
|
||
|
return overall
|
||
|
|
||
|
### gdzieś mam błąd, którego nie umiem zidentyfikować,
|
||
|
# poniweż niepoprawnie mi wykonuje dekodowanie/sumowanie dla zagnieżdżonych list w liście.
|
||
|
# wysyłam do momentu, w którym miałam wrażenie, że wiem o co chodzi. ;)
|
||
|
|
||
|
def tests(f):
|
||
|
inputs = [["this is a string"], ["this is another string"]]
|
||
|
#inputs = [["ala ma kota"], ["ala ma kota"]]
|
||
|
#outputs = [1516, 2172]
|
||
|
outputs = [103, 103]
|
||
|
#outputs = [97, 97]
|
||
|
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))
|