2016-08-01 2 views
0

ファイル内の文字を置き換える際に問題が発生しました。ファイル内の文字を置換するスクリプト

#!/usr/bin/env python 

with open("crypto.txt","r") as arquivo: 
    data = arquivo.read() 
for caracter in data: 
    if "a" in data: 
     data = data.replace("a","c") 
    elif "b" in data: 
     data = data.replace("b","d") 
    elif "c" in data: 
     data = data.replace("c","e") 
    elif "d" in data: 
     data = data.replace("d","f") 
    elif "e" in data: 
     data = data.replace("e","g") 
    elif "f" in data: 
     data = data.replace("f","h") 
    elif "g" in data: 
     data = data.replace("g","i") 
    elif "h" in data: 
     data = data.replace("h","j") 
    elif "i" in data: 
     data = data.replace("i","k") 
    elif "j" in data: 
     data = data.replace("j","l") 
    elif "k" in data: 
     data = data.replace("k","m") 
    elif "l" in data: 
     data = data.replace("l","n") 
    elif "m" in data: 
     data = data.replace("m","o") 
    elif "n" in data: 
     data = data.replace("n","p") 
    elif "o" in data: 
     data = data.replace("o","q") 
    elif "p" in data: 
     data = data.replace("p","r") 
    elif "q" in data: 
     data = data.replace("q","s") 
    elif "r" in data: 
     data = data.replace("r","t") 
    elif "s" in data: 
     data = data.replace("s","u") 
    elif "t" in data: 
     data = data.replace("t","v") 
    elif "u" in data: 
     data = data.replace("u","w") 
    elif "v" in data: 
     data = data.replace("v","x") 
    elif "w" in data: 
     data = data.replace("w","y") 
    elif "x" in data: 
     data = data.replace("x","z") 
    print data 

このスクリプトは、cryptoという名前のtxtファイルを読み取り、上記の文に基づいて文字の置換を開始します。このファイルの中には、アロハという言葉が書かれています。

これは、私は私がそれを修正することができますどのようにスクリプト

clohc 
elohe 
glohg 
ilohi 
iloji 
klojk 

を実行するたび取得した結果でしょうか? tr機能をperlの直接equlalであるPythonの string translate

import string 
with open("crypto.txt","r") as arquivo: 
    data = arquivo.read() 
    out = data.translate(string.maketrans("abcdefghijklmnopqrstuvw","defghijklmnopqrstuvwxyz")) 
    print out 

について何

+0

[ask]と[mcve] – Julien

+0

"文字の置き換え"が正確に定義されていません。正確な要件は何ですか?上記の例で期待される結果は何ですか? – kaylum

+0

より一般的にシーザー暗号またはローテーション暗号と呼ばれるものを実装しようとしているようです –

答えて

1

。それは、Cは、Gに変換GCに変換しTが文字列と混同へA

を次にません変換する画像がATに変換について説明し

以下のような作品です翻訳と文字列置換

文字列を置換して、単語全体を置き換えます。文字列を変換し、各文字に置き換えます。

関連する問題