|
@@ -207,8 +207,8 @@ def get_even(lst, number):
|
|
|
|
|
|
# first : int = 100
|
|
|
|
|
|
-def add_numbers(a: int, b: int | float | str) -> int:
|
|
|
- return a + b
|
|
|
+# def add_numbers(a: int, b: int | float | str) -> int:
|
|
|
+# return a + b
|
|
|
|
|
|
# print(add_numbers.__annotations__)
|
|
|
|
|
@@ -254,9 +254,48 @@ def first_repeated_word(s: str):
|
|
|
|
|
|
return d_index.get(m)
|
|
|
|
|
|
-assert first_repeated_word("ab ca bc ab") == "ab"
|
|
|
-assert first_repeated_word("ab ca bc Ab cA aB bc") == "bc"
|
|
|
-assert first_repeated_word("ab ca bc ca ab bc") == "ca"
|
|
|
-assert first_repeated_word("hello hi hello") == "hello"
|
|
|
+# assert first_repeated_word("ab ca bc ab") == "ab"
|
|
|
+# assert first_repeated_word("ab ca bc Ab cA aB bc") == "bc"
|
|
|
+# assert first_repeated_word("ab ca bc ca ab bc") == "ca"
|
|
|
+# assert first_repeated_word("hello hi hello") == "hello"
|
|
|
|
|
|
-print(first_repeated_word.__doc__)
|
|
|
+# print(first_repeated_word.__doc__)
|
|
|
+
|
|
|
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+def shift_letter(sim: str, shift: int):
|
|
|
+ """Функция сдвигает символ letter на shift позиций """
|
|
|
+ code = ord(sim) - 97
|
|
|
+ if shift >= 0:
|
|
|
+ shift = shift - 26*(shift//26)
|
|
|
+ if (code + 97 + shift) >= 122:
|
|
|
+ return chr(code + 97 + shift - 26)
|
|
|
+ else:
|
|
|
+ return chr(code + 97 + shift)
|
|
|
+ else:
|
|
|
+ shift *= -1
|
|
|
+ shift = shift - 26*(shift//26)
|
|
|
+ if (code + 97 - shift) < 97:
|
|
|
+ return chr(code + 97 + 26 - shift)
|
|
|
+ else:
|
|
|
+ return chr(code + 97 - shift)
|
|
|
+
|
|
|
+# assert shift_letter('b', 2) == 'd'
|
|
|
+# assert shift_letter('d', 1) == 'e'
|
|
|
+# assert shift_letter('z', 1) == 'a'
|
|
|
+# assert shift_letter('d', -2) == 'b'
|
|
|
+# assert shift_letter('d', 26) == 'd'
|
|
|
+# assert shift_letter('b', -3) == 'y'
|
|
|
+
|
|
|
+def caesar_cipher(message: str, shift: int):
|
|
|
+ """Шифр цезаря"""
|
|
|
+ my_str = ""
|
|
|
+ for i in message:
|
|
|
+ if i.isalpha():
|
|
|
+ my_str += shift_letter(i, shift)
|
|
|
+ else :
|
|
|
+ my_str += i
|
|
|
+ return my_str
|
|
|
+
|
|
|
+assert caesar_cipher('leave out all the rest', -1) == 'kdzud nts zkk sgd qdrs'
|
|
|
+assert caesar_cipher('one more light', 3) == 'rqh pruh oljkw'
|