在python中创建解密程序

时间:2013-02-05 09:08:08

标签: python encryption

所以不久前我向加密程序寻求帮助,
而且你们很棒,并提出了解决方案 所以我再次来找你寻求等效解密程序的帮助。 我到目前为止的代码是这样的:

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 个答案:

答案 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()))

这与J. F. Sebastian's answer.

完全相同