所以不久前我向加密程序寻求帮助,
而且你们很棒,并提出了解决方案
所以我再次来找你寻求等效解密程序的帮助。
我到目前为止的代码是这样的:
whinger = 0
bewds = raw_input ('Please enter the encrypted message: ')
bewds = bewds.replace(' ', ', ')
warble = [bewds]
print warble
wetler = len(warble)
warble.reverse();
while whinger < wetler:
print chr(warble[whinger]),
whinger += 1
但是当我输入时
101 103 97 115 115 101 109
它出现输入不是整数的错误
我需要的是当我输入数字时它将它们变成一个整数列表
但我不想分别输入所有数字。
先谢谢你的帮助:P
答案 0 :(得分:2)
将输入字符串转换为整数列表:
numbers = [int(s) for s in "101 103 97 115 115 101 109".split()]
答案 1 :(得分:1)
这几乎是我能想到的最简单的方法:
s = '101 103 97 115 115 101 109'
numbers = []
for number_str in s.replace(',', ' ').split():
numbers.append(int(number_str))
它允许用逗号和/或一个或多个空格字符分隔数字。如果您只想允许空格,请将“.replace(',', ' ')
”退出。
答案 2 :(得分:0)
您的问题是,raw_input会向您返回一个字符串。所以你有两个选择。
1,使用正则表达式库re。 E.G:
import re
bewds = raw_input ('Please enter the encrypted message: ')
some_list = []
for find in re.finditer("\d+", bewds):
some_list.append(find.group(0))
2,或者您可以使用此问题的最多投票答案中所述的拆分方法:sscanf in Python
答案 3 :(得分:0)
您也可以使用map
numbers = map(int, '101 103 97 115 115 101 109'.split())
这将返回Python 2中的列表,但是Python 3中的map
对象,您可能希望将其转换为列表。
numbers = list(map(int, '101 103 97 115 115 101 109'.split()))
完全相同