From c3050ee90a063270ac6b4cc710405873abbdb189 Mon Sep 17 00:00:00 2001 From: s45153 Date: Sun, 3 Dec 2017 22:34:37 +0000 Subject: [PATCH] zad_dom_07 -"- --- labs02/task07_done.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 labs02/task07_done.py diff --git a/labs02/task07_done.py b/labs02/task07_done.py new file mode 100644 index 0000000..d4a3126 --- /dev/null +++ b/labs02/task07_done.py @@ -0,0 +1,42 @@ +#!/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))