1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| def caesar(start_text, shift_amount, cipher_direction):
end_text = ""
if cipher_direction == "decode":
shift_amount *= -1
for char in start_text:
if char in alphabet:
position = alphabet.index(char)
new_position = position + shift_amount
end_text += alphabet[new_position]
else:
end_text += char
print(f"Here's the {cipher_direction}d result: {end_text}")
from art import logo
print(logo)
alphabet = [
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
]
should_continue = True
while should_continue:
direction = input("Type 'encode' to encrypt, type 'decode' to decrypt:\n")
text = input("Type your message:\n").lower()
shift = int(input("Type the shift number:\n"))
shift = shift % 26
caesar(start_text=text, shift_amount=shift, cipher_direction=direction)
result = input("Type 'yes' if you want to go again. Otherwise type 'no'.\n")
if result == "no":
should_continue = False
print("Goodbye")
# Output:
#
# _ __ __ _ __ _ ___ ___ ___ ___ ___ ___
# | | | \/ | |/ /| |/ / / _ \ / _ \ / _ \ / _ \ / _ \
# | |_| |\/| | ' / | ' / | __/| (_) | (_) | (_) | __/
# \__,_| |_|_|\_\|_|\_\ \___| \___/ \___/ \___/ \___|
#
#
# Type 'encode' to encrypt, type 'decode' to decrypt:
# encode
# Type your message:
# hello
# Type the shift number:
# 5
# Here's the encoded result: mjqqt
# Type 'yes' if you want to go again. Otherwise type 'no'.
# yes
# Type 'encode' to encrypt, type 'decode' to decrypt:
# decode
# Type your message:
# mjqqt
# Type the shift number:
# 5
# Here's the decoded result: hello
# Type 'yes' if you want to go again. Otherwise type 'no'.
# no
# Goodbye
|