Python字符串到ASCII和后面

时间:2014-12-08 22:55:50

标签: python string python-2.7 encryption ascii

我需要将输入的字符串转换为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)

'''

我评论说要把它转回来的第二部分,如果我能把它给我带回字母改变的字符串,我可以把剩下的都弄清楚。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:3)

str应用于整数列表,如您所发现的那样,为您提供了一个类似[65, 66, 67]的字符串,而不是ABC。要将单个整数转换回字符串,可以使用chr。然后,要为整个整数列表执行此操作,请使用join

y = ''.join(chr(3 + ord(c)) for c in x)