我需要将输入的字符串转换为ASCII值,向它们添加三个,然后打印出所有字母都已更改的新字符串。
我已经达到了可以在列表中获取ASCII值的程度,但是我无法将其转换回字符串。
这是我到目前为止编写的代码。
def encrypt (x): #function for encrypting
#y=[ord(c) for c in x] #turns strings into values this works
#y=[3+ ord(c) for c in x] #adds 3 to the values of the letters turned to number this also works
y=str([3+ ord(c) for c in x]) # this does not do what I expected it to do. Neither does char
print(y)
'''def decrypt (x):
y=str([-3 + ord(c) for c in x])
print(y)
'''
x=str(input("Enter something to be encrypted: ")) #gets string to encrypted
encrypt (x) #calls function sends the entered sentence
'''
x=str(input("Enter something to be decrypted: ")) #gets string to decrypted
decrypt (x)
'''
我评论说要把它转回来的第二部分,如果我能把它给我带回字母改变的字符串,我可以把剩下的都弄清楚。
感谢您提供的任何帮助。
答案 0 :(得分:3)
str
应用于整数列表,如您所发现的那样,为您提供了一个类似[65, 66, 67]
的字符串,而不是ABC
。要将单个整数转换回字符串,可以使用chr
。然后,要为整个整数列表执行此操作,请使用join
:
y = ''.join(chr(3 + ord(c)) for c in x)