我试图将用户输入的内容转换为ascii数字,但使用此方法似乎无法正常工作,我不知道问题是什么?
message = input ("Enter message to be encrypted: ")
message_numbers = ""
for i in message:
message_numbers1 = [ord(c) for c in message]
message_numbers = message_numbers + message_numbers1
print (message_numbers)
答案 0 :(得分:0)
首先,您不需要迭代消息,然后使用列表解析再次迭代消息,坚持一个。
如果预期输出是在字符串中输入的字符的ascii数字,那么您将丢失将ascii数字列表转换为字符串,因为您可以使用string.join
函数 -
message = input ("Enter message to be encrypted: ")
message_numbers1 = [ord(c) for c in message]
message_numbers = message_numbers + ''.join(map(str, message_numbers1))
print (message_numbers)
请注意,join
函数的输入是一个可迭代的list_like字符串,因此我使用map
将message_numbers1转换为字符串。
如果message_numbers1
不会在其他任何地方使用,您也可以直接在其中创建字符串,如下所示 -
message_numbers1 = [str(ord(c)) for c in message]
在这种情况下,您可以直接使用 -
message_numbers = message_numbers + ''.join(message_numbers1)