2016-08-15 16 views
0

次のコードは、数値を文字に変換しますが、一度に1つの数値しか入力できません。 入力します:私は何をしようとしているの1つの入力に複数の値を書き込む

import string 


def translate(): 
    d = dict(enumerate(string.ascii_lowercase, 0)) 
    message = d[int(input('Enter:'))] 
    print(message) 

translate() 

例25345265 それは、出力、それに対応する文字

+0

あなたはどのように番号のあいまいさに対処しますか? '253'は' 'cfd''や' 'zd''に変わると思いますか? –

+0

@ juanpa.arrivillagaどのような最良の方法があるかわからない。それからリストを作成することについての考え。コンマを使用するだけで、私が思った中で最も速くなります。 2、5、3 ect ...私は、おそらく25を超えないように例外を作るべきです。 –

+1

またはスペースのみ: "2 22 2 3 23" –

答えて

0

にすべての数字は、これはあなたの基本的なアプローチ可能性があります:

>>> import string 
>>> d = {str(k):v for k,v in enumerate(string.ascii_lowercase)} 
>>> message = input('Enter:') 
Enter:2 5 3 
>>> print("".join(d[x] for x in message.split())) 
cfd 
>>> message = input('Enter:') 
Enter:25 3 
>>> print("".join(d[x] for x in message.split())) 
zd 
>>> message = input('Enter:') 
Enter:8 26 5 3 

あなたの範囲外の値を処理するには、その数値を受け入れるか、デフォルト値、例えば'*'

>>> message = input('Enter:') 
Enter:8 26 5 25 
>>> print("".join(d.get(x,'*') for x in message.split())) 
i*fz 
関連する問題