私はデコード機能を構築しようとしています。この関数は 'フレーズ'の文字と 'キー'の文字との間の距離を見つけ、距離には 'キー'の対応する文字が続くはずです。 'h'は 's'から11文字離れているため、関数を通る1回の反復で 's11'が返されるため、 'phrase' = 'hello'と 'key' = 'sam'ネストされたForループPython
なぜ私の 'decode_phrase'機能が機能していないのかという手がかりはありません。
def get_distance(letter1, letter2):
if letter1 < letter2:
x = (ord(letter2) - ord(letter1))
elif letter1 == letter2:
x = 0
elif letter1 > letter2:
x = (ord(letter2) - ord(letter1)) + 26
return x
def decode_phrase(phrase, key):
new_word = ''
i = 0
k = 0
for p in range(len(phrase)):
for q in range(len(key)):
y = get_distance(phrase[i], key[k])
new_word = new_word + key[k] + str(y)
k = k +1
i = i +1
return new_word
私は入力decode_phrase(「マイク」、「サム」)私は現在、範囲外の文字列インデックスを取得しています。しかし、コードに深刻な問題があると私は確信しています
は、内のコードを配置し、コードの画像を投稿しないでくださいあなたの質問 – donkopotamus
また、decode_phraseがうまくいかないかについて、さらに詳しい情報を提供してください。特定の入力が与えられたときに返される内容と、返される内容を示す例を提供します。 – Colin
BTW 'get_distance'はかなり簡単にできます:' x = ord(letter2) - ord(letter1);のようなものです。 x <0:x + = 26ならば十分である。 – 9000