2016-12-12 5 views
0

Iveは、基本的に別の文字の代わりに文字を使用していますが、問題は多くのコードを必要とすることです。Python 3.5.2このコードを短縮するには?

短縮方法を教えてください。変数を使うのが好きで、たくさんの行を書く必要がない方法がありますか?

def begin(): 
    lock = input("Enter the passcode") 
    if lock == 'password': 
     start() 
    else: 
     print("Wrong passcode") 
     begin() 

def start(): 
    print("Put in each letter one by one") 
    print("Your message should be a 5 letter word") 
    letter1 = input("") 
    letter2 = input("") 
    letter3 = input("") 
    letter4 = input("") 
    letter5 = input("") 
#letter 1 
    if letter1 == 'f': 
     letter1 = 'a' 
    elif letter1 == 'g': 
     letter1 = 'b' 
    elif letter1 == 'h': 
     letter1 = 'c' 
    elif letter1 == 'i': 
     letter1 = 'd' 
    elif letter1 == 'j': 
     letter1 = 'e' 
    elif letter1 == 'k': 
     letter1 = 'f' 
    elif letter1 == 'l': 
     letter1 = 'g' 
    elif letter1 == 'm': 
     letter1 = 'h' 
    elif letter1 == 'n': 
     letter1 = 'i' 
    elif letter1 == 'o': 
     letter1 = 'j' 
    elif letter1 == 'p': 
     letter1 = 'k' 
    elif letter1 == 'q': 
     letter1 = 'l' 
    elif letter1 == 'r': 
     letter1 = 'm' 
    elif letter1 == 's': 
     letter1 = 'n' 
    elif letter1 == 't': 
     letter1 = 'o' 
    elif letter1 == 'u': 
     letter1 = 'p' 
    elif letter1 == 'v': 
     letter1 = 'q' 
    elif letter1 == 'w': 
     letter1 = 'r' 
    elif letter1 == 'x': 
     letter1 = 's' 
    elif letter1 == 'y': 
     letter1 = 't' 
    elif letter1 == 'z': 
     letter1 = 'u' 
    elif letter1 == 'a': 
     letter1 = 'v' 
    elif letter1 == 'b': 
     letter1 = 'w' 
    elif letter1 == 'c': 
     letter1 = 'x' 
    elif letter1 == 'd': 
     letter1 = 'y' 
    elif letter1 == 'e': 
     letter1 = 'z' 
#letter 2 
    if letter2 == 'f': 
     letter2 = 'a' 
    elif letter2 == 'g': 
     letter2 = 'b' 
    elif letter2 == 'h': 
     letter2 = 'c' 
    elif letter2 == 'i': 
     letter2 = 'd' 
    elif letter2 == 'j': 
     letter2 = 'e' 
    elif letter2 == 'k': 
     letter2 = 'f' 
    elif letter2 == 'l': 
     letter2 = 'g' 
    elif letter2 == 'm': 
     letter2 = 'h' 
    elif letter2 == 'n': 
     letter2 = 'i' 
    elif letter2 == 'o': 
     letter2 = 'j' 
    elif letter2 == 'p': 
     letter2 = 'k' 
    elif letter2 == 'q': 
     letter2 = 'l' 
    elif letter2 == 'r': 
     letter2 = 'm' 
    elif letter2 == 's': 
     letter2 = 'n' 
    elif letter2 == 't': 
     letter2 = 'o' 
    elif letter2 == 'u': 
     letter2 = 'p' 
    elif letter2 == 'v': 
     letter2 = 'q' 
    elif letter2 == 'w': 
     letter2 = 'r' 
    elif letter2 == 'x': 
     letter2 = 's' 
    elif letter2 == 'y': 
     letter2 = 't' 
    elif letter2 == 'z': 
     letter2 = 'u' 
    elif letter2 == 'a': 
     letter2 = 'v' 
    elif letter2 == 'b': 
     letter2 = 'w' 
    elif letter2 == 'c': 
     letter2 = 'x' 
    elif letter2 == 'd': 
     letter2 = 'y' 
    elif letter2 == 'e': 
     letter2 = 'z' 
#letter 3 
    if letter3 == 'f': 
     letter3 = 'a' 
    elif letter3 == 'g': 
     letter3 = 'b' 
    elif letter3 == 'h': 
     letter3 = 'c' 
    elif letter3 == 'i': 
     letter3 = 'd' 
    elif letter3 == 'j': 
     letter3 = 'e' 
    elif letter3 == 'k': 
     letter3 = 'f' 
    elif letter3 == 'l': 
     letter3 = 'g' 
    elif letter3 == 'm': 
     letter3 = 'h' 
    elif letter3 == 'n': 
     letter3 = 'i' 
    elif letter3 == 'o': 
     letter3 = 'j' 
    elif letter3 == 'p': 
     letter3 = 'k' 
    elif letter3 == 'q': 
     letter3 = 'l' 
    elif letter3 == 'r': 
     letter3 = 'm' 
    elif letter3 == 's': 
     letter3 = 'n' 
    elif letter3 == 't': 
     letter3 = 'o' 
    elif letter3 == 'u': 
     letter3 = 'p' 
    elif letter3 == 'v': 
     letter3 = 'q' 
    elif letter3 == 'w': 
     letter3 = 'r' 
    elif letter3 == 'x': 
     letter3 = 's' 
    elif letter3 == 'y': 
     letter3 = 't' 
    elif letter3 == 'z': 
     letter3 = 'u' 
    elif letter3 == 'a': 
     letter3 = 'v' 
    elif letter3 == 'b': 
     letter3 = 'w' 
    elif letter3 == 'c': 
     letter3 = 'x' 
    elif letter3 == 'd': 
     letter3 = 'y' 
    elif letter3 == 'e': 
     letter3 = 'z' 
#letter 4 
    if letter4 == 'f': 
     letter4 = 'a' 
    elif letter4 == 'g': 
     letter4 = 'b' 
    elif letter4 == 'h': 
     letter4 = 'c' 
    elif letter4 == 'i': 
     letter4 = 'd' 
    elif letter4 == 'j': 
     letter4 = 'e' 
    elif letter4 == 'k': 
     letter4 = 'f' 
    elif letter4 == 'l': 
     letter4 = 'g' 
    elif letter4 == 'm': 
     letter4 = 'h' 
    elif letter4 == 'n': 
     letter4 = 'i' 
    elif letter4 == 'o': 
     letter4 = 'j' 
    elif letter4 == 'p': 
     letter4 = 'k' 
    elif letter4 == 'q': 
     letter4 = 'l' 
    elif letter4 == 'r': 
     letter4 = 'm' 
    elif letter4 == 's': 
     letter4 = 'n' 
    elif letter4 == 't': 
     letter4 = 'o' 
    elif letter4 == 'u': 
     letter4 = 'p' 
    elif letter4 == 'v': 
     letter4 = 'q' 
    elif letter4 == 'w': 
     letter4 = 'r' 
    elif letter4 == 'x': 
     letter4 = 's' 
    elif letter4 == 'y': 
     letter4 = 't' 
    elif letter4 == 'z': 
     letter4 = 'u' 
    elif letter4 == 'a': 
     letter4 = 'v' 
    elif letter4 == 'b': 
     letter4 = 'w' 
    elif letter4 == 'c': 
     letter4 = 'x' 
    elif letter4 == 'd': 
     letter4 = 'y' 
    elif letter4 == 'e': 
     letter4 = 'z' 
#letter 5 
    if letter5 == 'f': 
     letter5 = 'a' 
    elif letter5 == 'g': 
     letter5 = 'b' 
    elif letter5 == 'h': 
     letter5 = 'c' 
    elif letter5 == 'i': 
     letter5 = 'd' 
    elif letter5 == 'j': 
     letter5 = 'e' 
    elif letter5 == 'k': 
     letter5 = 'f' 
    elif letter5 == 'l': 
     letter5 = 'g' 
    elif letter5 == 'm': 
     letter5 = 'h' 
    elif letter5 == 'n': 
     letter5 = 'i' 
    elif letter5 == 'o': 
     letter5 = 'j' 
    elif letter5 == 'p': 
     letter5 = 'k' 
    elif letter5 == 'q': 
     letter5 = 'l' 
    elif letter5 == 'r': 
     letter5 = 'm' 
    elif letter5 == 's': 
     letter5 = 'n' 
    elif letter5 == 't': 
     letter5 = 'o' 
    elif letter5 == 'u': 
     letter5 = 'p' 
    elif letter5 == 'v': 
     letter5 = 'q' 
    elif letter5 == 'w': 
     letter5 = 'r' 
    elif letter5 == 'x': 
     letter5 = 's' 
    elif letter5 == 'y': 
     letter5 = 't' 
    elif letter5 == 'z': 
     letter5 = 'u' 
    elif letter5 == 'a': 
     letter5 = 'v' 
    elif letter5 == 'b': 
     letter5 = 'w' 
    elif letter5 == 'c': 
     letter5 = 'x' 
    elif letter5 == 'd': 
     letter5 = 'y' 
    elif letter5 == 'e': 
     letter5 = 'z' 



    print("Your encypted message is:") 
    print(letter1 + letter2 + letter3 + letter4 + letter5) 
    QUIT = input("Press enter to quit") 
    quit 

begin() 
+1

を取得します。見える[ここ](http://stackoverflow.com/a/26371777/1226915) –

答えて

0

私はあなたのif文と同じようletter2letter1からのマッピングを持つ辞書を作成することをお勧めします。

letterMapping = {'f':'a','g':'b'}ので、1、あなたの入力を受信したときにだけ実行しますた

letter1 = input("") 
letterMapping[letter1] 

そうletter1場合fそれはaを返します。

2

str.maketrans()を使用して変換テーブルを作成し、str.translate()を使用して翻訳を使用します。あなたの手紙を綴るのではなく、string.ascii_lowercaseを使用してください。良い改善かもしれない大文字と小文字を処理するためにstring.ascii_lettersを使用してください。

>>> import string 
>>> letters = string.ascii_lowercase 
>>> table = str.maketrans(letters[5:]+letters[:5], letters) 
>>> str.translate('crown', table) 
'xmjri' 

または、変換テーブルとして使用する辞書を作成します。 dict.get()にデフォルト値を使用すると、指定されたマッピングがない場合に文字が翻訳されずに渡されます。

>>> import string 
>>> letters = string.ascii_lowercase 
>>> d = dict(zip(letters[5:]+letters[:5], letters)) 
>>> ''.join(d.get(c, c) for c in 'crown') 
'xmjri' 
0

こんにちは、whileループと配列を使用しないでください。

ないコードが動作するかどうかを確認しますが、あなたははいアイデア

def start(): 
letters = array(); 
x = 0; 
while(x != 5): 
    print("Enter 1 letter"); 
    letters[x] = input(""); 
    x = x +1; 
while(x != 5): 
    if (letters[x] == 'f'): 
     letters[x] = 'a' 
    elif(letters[x] == 'g'): 
     letters[x] = 'b' 
    elif ((letters[x] == 'h'): 
     letters[x]= 'c' 
    elif (letters[x] == 'i'): 
     letters[x] = 'd' 
    elif (letters[x] == 'j'): 
     letters[x] = 'e' 
    elif (letters[x] == 'k'): 
     letters[x] = 'f' 
    elif (letters[x] == 'l'): 
     letters[x] = 'g' 
    elif (letters[x] == 'm'): 
     letters[x] = 'h' 
    elif (letters[x] == 'n'): 
     letters[x] = 'i' 
    elif (letters[x] == 'o'): 
     letters[x] = 'j' ; 
    elif (letters[x] == 'p'): 
     letters[x] = 'k' 
    elif (letters[x] == 'q'): 
     letters[x] = 'l' 
    elif (letters[x] == 'r'): 
     letters[x] = 'm' 
    elif (letters[x] == 's'): 
     letters[x] = 'n' 
    elif (letters[x] == 't'): 
     letters[x] = 'o' 
    elif (letters[x] == 'u'): 
     letters[x] = 'p' 
    elif (letters[x] == 'v'): 
     letters[x] = 'q' 
    elif (letters[x] == 'w'): 
     letters[x] = 'r' 
    elif (letters[x] == 'x'): 
     letters[x] = 's' 
    elif (letters[x] == 'y'): 
     letters[x] = 't' 
    elif (letters[x] == 'z'): 
     letters[x] = 'u' 
    elif (letters[x] == 'a'): 
     letters[x] = 'v' } 
    elif (letters[x] == 'b'): 
     letters[x] = 'w' 
    elif (letters[x] == 'c'): 
     letters[x] = 'x' 
    elif (letters[x] == 'd'): 
     letters[x] = 'y' 
    elif (letters[x] == 'e'): 
     letters[x] = 'z' 

    x = x + 1; 


print("Your encypted message is:") 
print(letters[0] + letters[1] + letters[2] + letters[3] + letters[4]) 
QUIT = input("Press enter to quit") 
quit 
関連する問題