20 lines
657 B
Python
20 lines
657 B
Python
def rotate(text, key):
|
|
cyphertext: str = ""
|
|
for letter in text:
|
|
if letter.isalpha():
|
|
# check if letter is uppercase or lower case,
|
|
# and set add_value accordingly
|
|
if ord(letter) >= ord("A") and ord(letter) <= ord("Z"):
|
|
add_value = ord("A")
|
|
else:
|
|
add_value = ord("a")
|
|
# mod_value
|
|
mod_value = add_value + 26
|
|
cyphertext += chr(
|
|
((ord(letter) + key) % mod_value)
|
|
+ (((ord(letter) + key) // mod_value) * add_value)
|
|
)
|
|
else:
|
|
cyphertext += letter
|
|
return cyphertext
|