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