This commit is contained in:
2023-08-23 09:38:41 -03:00
parent a3306596e1
commit 218aca1a6c
5 changed files with 81 additions and 28 deletions
+22 -18
View File
@@ -39,6 +39,8 @@ special_chars = {
")": ")"
}
caracteres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
def cesar(string, key):
new_string = ""
@@ -50,26 +52,28 @@ def cesar(string, key):
if letter in special_letters:
letter = special_letters[letter]
new_letter = ord(letter) + key
index = caracteres.index(letter)
new_index = (index + key) % len(caracteres)
new_letter = caracteres[new_index]
# [A-Z, a-z, 0-9]
if ord('0') <= ord(letter) <= ord('9'):
if new_letter > ord('9'):
new_letter += 7 # 9 + 1 = A
elif new_letter < ord('0'):
new_letter += 75 # 0 - 1 = z
elif letter.isupper():
if new_letter > ord('Z'):
new_letter += 6 # Z + 1 = a
elif new_letter < ord('A'):
new_letter -= 7 # A - 1 = 9
else:
if new_letter > ord('z'):
new_letter -= 75 # z + 1 = 0
elif new_letter < ord('a'):
new_letter -= 6 # a - 1 = Z
# # [A-Z, a-z, 0-9]
# if ord('0') <= ord(letter) <= ord('9'):
# if new_letter > ord('9'):
# new_letter += 7 # 9 + 1 = A
# elif new_letter < ord('0'):
# new_letter += 75 # 0 - 1 = z
# elif letter.isupper():
# if new_letter > ord('Z'):
# new_letter += 6 # Z + 1 = a
# elif new_letter < ord('A'):
# new_letter -= 7 # A - 1 = 9
# else:
# if new_letter > ord('z'):
# new_letter -= 75 # z + 1 = 0
# elif new_letter < ord('a'):
# new_letter -= 6 # a - 1 = Z
new_string += chr(new_letter)
new_string += new_letter
return new_string