0

これは、事前に作成されたファイルから文字列を取得するか、ユーザー入力を取得して暗号化し、シーザー暗号を使用してファイルに保存することになっている基本的なプログラムです。

私の問題は、何らかの理由でプログラムを実行して「ファイルの読み込み」オプションを選択すると、エラーメッセージなしですべてのコードを通過することですが、.txt ファイルへの書き込みは暗号化されません。これを改善するには?

コードのよりきれいなレイアウトについては、ここに Pastebin リンクがあります: http://pastebin.com/dJJ1M4g7

def main():

    #if they want to save the file after the encrypting if statement
    ans = input("Would you like to save to a file of read a file, press w or     r").lower()

    if ans == "w":
        text = input("What is your text you want to enter").lower()

        save_file(caeser(text))

    elif ans == "r":

        caeser(load_file())

# organise loop & function
def caeser(text):
        shift = int(input("How much would you like to shift?: "))
        shifted_list = []
        for letter in text:
            character_lower = letter.lower()
            ASCII = ord(character_lower)
            shift = shift % 26
            shifted_letter = ASCII + shift
            shifted_char = chr(shifted_letter)
            shift_loop = shifted_letter - 26
            shift_loop_char = chr(shift_loop)
            if shifted_letter >= 97 and shifted_letter <= 122:
                shifted_list.append(shifted_char)
                text = ''.join(shifted_list)
            elif shift_loop >= 97 and shift_loop <= 122:
                shifted_list.append(shift_loop_char)
                text = ''.join(shifted_list)
            else:
                shifted_list.append(character_lower)
                text = ''.join(shifted_list)

            encrypted = text

        return encrypted

def save_file(text):
    name = input("Enter filename")
    file = open(name, "w")
    file.write(text)
    file.close()

# error protection needs to be added
def load_file():
    name = input("what is your file name? (include .txt)")
    file = open(name, "r")
    text = file.read()
    file.close()
    return text

main()
4

2 に答える 2

0

load_fileは書き込みを行っていないため、書き込みオプションで行ったことを行うことができます

save_file(load_file())

または load 関数内で save を呼び出します

save_file(text)
于 2015-04-06T19:01:36.477 に答える
0
caeser(load_file())

周りにセーブファイルを追加...

于 2015-04-06T18:46:50.780 に答える