2017-03-23 11 views
0

アルファベットを2つのリストに回転させるコードを書く必要があります。Python - アルファベットをインデックスで交換しながら、リストを繰り返しますか?

私は関数を定義する必要があります、それはrotate_textと呼ばれているとしましょう。

2つのパラメータが渡され、1は文字列であり、1は整数です。

これは、これまでの私のコードです:Aは、CDEを返すべき

、だから、それを行うために必要なものを私はパラメータテキストに、パラメータnの2のためのABCを置けば、ある

def rotate_text(text, n): 
plaintext = ['ABCDEFGHIJKLMNOPQRSTUVWXYZ'] 
ciphertext = ['FGHIJKLMNOPQRSTUVWYXZABCDE'] 
rotated_text = [] 
for i in plaintext: 
    rotated_text = ciphertext[plaintext[i + n]] 
result = ''.join(rotated_text) 
return result 

結果として。または、犬と11人がOBKを返すべきです。私は本当に私はそれを取ると思うので、私はそのcipertextのリストが必要だとは思わないが、私はどのように私はこのコードを動作させるのですか?

プログラムがABCをテキストとして取得した場合、Aのインデックスをプレーンテキストリストから見つけ、+ nからそのインデックスを見つけ、plaintextリストからplused n indexを満たす文字を探し、それから....頭痛。

誰でも手助けできますか?

答えて

0

このコードはどうですか? textは大文字でなければなりません。

def rotate_text(text, n): 
    for i in len(text): 
     number = ord(text[i]) - ord('A') 
     number = (number + n) % 26 
     text[i] = chr(number + ord('A')) 
    return text 

あなたも下ケースを使用する場合は、ifステートメントを使用する必要があります。

+0

行番号=(番号+ n)%26でエラーになります。無効な構文です。 – Auclown

関連する問題