1
0
forked from tdwojak/Python2017
Python2017/labs02/task07_done.py
2017-12-03 22:34:37 +00:00

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))