Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a script that inputs a line of encrypted text and a distance value and out

ID: 3858877 • Letter: W

Question

Write a script that inputs a line of encrypted text and a distance value and outputs plaintext using a Caesar cipher. The script should work for any printable characters.

my code

data = input("Enter text for encryption: ")
dist = int(input("Enter the value for Distance: "))
datum = ""
for cha in data:
val = ord(cha)
cipher_val = (val + dist)
if cipher_val > ord('z'):
cipher_val = ord('a') + dist
datum = datum + chr(cipher_val)
print('Encrypted Text: ')
print(datum)

there is an error saying (UnicodeEncodeError: 'ascii' codec can't encode character 'Å' in position 0: ordinal not in range(128))

Explanation / Answer

Hi this error is coming because cipher_val contains some characters which cannot be understood by ascii i.e. they are not present in ascii table and chr() cannot convert it to any character.

So for this , each character we need to convert to utf-8 using .encode("utf-8").

This error mostly dont occurs in new compilers. In Python 3, default setting of utf-8 is there, sO this error doesn't come.

Even for me I tried different compilers and I am getting the output as below: -

Hope this hint can resolve your issue.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote