1

所以不久前我就加密程序寻求一些帮助,
你们太棒了,想出了解决方案。
所以我再次来找你寻求等效解密程序的帮助。到目前为止我得到的代码是这样的:

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

4

4 回答 4

2

要将输入字符串转换为整数列表:

numbers = [int(s) for s in "101 103 97 115 115 101 109".split()]
于 2013-02-05T09:19:55.903 回答
1

这几乎是我能想到的最简单的方法:

s = '101 103 97 115 115 101 109'
numbers = []
for number_str in s.replace(',', ' ').split():
    numbers.append(int(number_str))

它将允许用逗号和/或一个或多个空格字符分隔数字。如果您只想允许空格,请留下“ .replace(',', ' ')”。

于 2013-02-05T09:44:32.013 回答
0

你也可以使用map

numbers = map(int, '101 103 97 115 115 101 109'.split())

这在 Python 2 中返回一个列表,但map在 Python 3 中返回一个对象,您可能希望将其转换为列表。

numbers = list(map(int, '101 103 97 115 115 101 109'.split()))

这与JF Sebastian 的回答完全相同。

于 2013-02-05T09:25:44.757 回答
0

你的问题是, raw_input 返回一个字符串给你。所以你有两个选择。

1、使用正则表达式库re。例如:

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,或者您可以使用该问题投票最多的答案中描述的拆分方法:Python中的sscanf

于 2013-02-05T09:21:37.600 回答