0

現在、文の各文字に対して関数を実行してから結果を出力していません。

#secret code encryptor 

def encoder(plain):

    for i in plain:
        i=ord(i)*77+4
        return i 

def main():

    plain=input('Enter a sentence: ')
    final=encoder(plain)
    print(final)

main()
4

2 に答える 2

1

関数内の変換されたすべての文字をリストに収集し、それを返す必要があります。

def encoder(plain):
    result = []  

    for i in plain:
        i=ord(i)*77+4
        result.append(i)

    return result 

return関数をすぐに終了するため、バージョンは最初のエンコードされた値のみを返します。

于 2013-11-02T19:32:38.500 に答える
0

エラーは次のencoderとおりです。

def encoder(plain):

for i in plain:
    i=ord(i)*77+4
    return i

encoderreturn ステートメントが実行されると、 の実行がすぐに終了することに注意してください。ループの本体は 2 回も実行されません。したがって、 for ループで実際にすべての数値を反復処理する場合は、その return ステートメントを移動する必要があります。その後、各ラウンドで i が上書きされることによって別の問題が発生する可能性があるため、戻り値を構築する方法を完全に再考する必要があります。

于 2013-11-02T19:32:46.407 に答える