TelenkovDmitry 1 tahun lalu
induk
melakukan
e8aa153e5b
1 mengubah file dengan 46 tambahan dan 7 penghapusan
  1. 46 7
      courses/python_for_begginers/func.py

+ 46 - 7
courses/python_for_begginers/func.py

@@ -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'