重复或关闭程序?

时间:2014-05-24 20:05:38

标签: python loops repeat

我尝试了自己的小凯撒密码,直到现在它的工作非常好......我想补充一点,在程序结束后,界面会询问用户是否要再次执行该程序,但我是失败......

到目前为止,这是我的代码:

print("Willkommen zur Caesarchiffre!")

def my_func() :

    MAX_KEY_SIZE = 26

    def getMode():
        while True:
            print('Wollen sie verschlüsseln(v) oder entschlüsseln(e) ?')
            mode = input().lower()
            if mode in 'verschlüsseln v entschlüsseln e'.split():
                return mode
            else:
                print('Bitte geben sie entweder "v" zum verschlüsseln oder "e" zum entschlüsseln ein .')

    def getMessage():
        print('Geben sie ihre Nachricht ein:')
        return input()

    def getKey():
        key = 0
        while True:
            print('Geben sie die Zahl der Verschiebung(en) an. (1-%s)' % (MAX_KEY_SIZE))
            key = int(input())
            if (key >= 1 and key <= MAX_KEY_SIZE):
                return key

    def getTranslatedMessage(mode, message, key):
        if mode[0] == 'e':
            key = -key
        translated = ''

        for symbol in message:
            if symbol.isalpha():
                num = ord(symbol)
                num += key

                if symbol.isupper():
                    if num > ord('Z'):
                        num -= 26
                    elif num < ord('A'):
                        num += 26
                elif symbol.islower():
                    if num > ord('z'):
                        num -= 26
                    elif num < ord('a'):
                        num += 26

                translated += chr(num)
            else:
                translated += symbol
        return translated

    mode = getMode()
    message = getMessage()
    key = getKey()

    print('Ihr Text lautet:')
    print(getTranslatedMessage(mode, message, key))

我不知道如何循环整个程序...

我不是英文原文,所以print(“”)的显示文字不是英文

修改

以下是我在评论中提到的摘录:

               return translated
while True :
        mode = getMode()
            if mode = 'b'
                break
        message = getMessage()
        key = getKey()

1 个答案:

答案 0 :(得分:0)

你需要永远重复,直到用户决定退出,例如:

while True:
  mode = getMode()
  if mode == 'q': 
    break
  message = getMessage()
  key = getKey()

所以他会在veq之间选择退出