2016-11-11 3 views
0

私は答えに応じてそれを編集した:python 3複数の数字を1つの数字として読み取るプログラムをデコードしますか?

def decode(code, key): 
    decode = ' ' 
    for n in code: 
     for t in key: 
      if n == '2' and t == '1': 
       decode = decode + 'a' 
      elif n == '2' and t == '2': 
       decode = decode + 'b' 
      elif n == '2' and t == '3': 
       decode = decode + 'c' 

となどなどしかし、今:

keypad.decode('43556 96753!', '22333 13331!') #hello world!

入力です。

hhiii giiig!eefff dfffd!kklll jlllj!kklll jlllj!nnooo mooom!22333 13331!xx333 w333w!nnooo mooom!qqrrr prrrp!kklll jlllj!eefff dfffd!22333 13331!

と出力。

何が起こっていますか?私はそれが何かタイプミスを持っているかどうかを確認するためにコードをチェックしました。

+0

if条件では 't'と' n'を使うべきだと思います。それ以外の場合、forループはあまり意味がありません。 – Marcin

+1

詳しくは: 't == '2'、n == '1''など。 –

+0

問題文、サンプル入力、およびサンプル出力を投稿する方がよいでしょう。 – Shasha99

答えて

0

あなたはif文に代わりcodekeytnを比較する必要があります。

def decode(code, key): 
    decode = ' ' 
    for n in key: 
     for t in code: 
      if t == '2' and n == '1': 
       decode = decode + 'a' 
      elif t == '2' and n == '2': 
       decode = decode + 'b' 
      elif t == '2' and n == '3': 
       decode = decode + 'c' 
    return decode 
+0

私はそれをしました、私は新しい問題のために投稿を編集しました@User_Targaryen –

0

たぶん、あなたは、ネストされたループを使用することを意味するものではありませんか? about:

for n, t in zip(code, key): 
    if n == '2' and t == '1': 
    ... 
関連する問題