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))

数字をコンマや1つ以上のスペース文字で区切ることができます。スペースのみを許可する場合は、「.replace(',', ' ')」を省略します。

于 2013-02-05T09:44:32.013 に答える
0

あなたの問題は、 raw_input が文字列を返すことです。したがって、2 つのオプションがあります。

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 に答える
0

使用することもできますmap

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

これは Python 2 ではリストを返しますが、mapPython 3 ではオブジェクトを返します。これをリストに変換したい場合があります。

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

これは、 JF Sebastian の回答とまったく同じです。

于 2013-02-05T09:25:44.757 に答える