代码之家  ›  专栏  ›  技术社区  ›  beginner_geek07

为什么我的输出是“无”?

  •  -3
  • beginner_geek07  · 技术社区  · 2 年前

    我正在为家庭作业制作凯撒密码。我想我需要写的东西都打出来了。 但我确实有个问题。

    我越来越 none 在代码中:

    def fancy_caesar(message, keyword, true_false_statement):
        count = 0
        while count == 0:
            true_false_statement = str(input("Type True if you want to encrypt.\nType false if you want to decrypt: "))
            if true_false_statement == 'true' or true_false_statement == 'True' or true_false_statement == 't' or true_false_statement == 'T':
                count = count + 1
            elif true_false_statement == 'false' or true_false_statement == 'False' or true_false_statement == 'F' or true_false_statement == 'f':
                count = count + 1
            else:
                print('None')
        alphabet = 'abcdefghijklmnopqrstuvwxyz'
        translated_message = ""
        keyword_index = 0
    
        for character in message:
            if character in alphabet:
                number = alphabet.find(character)
                if true_false_statement == 'true' or true_false_statement == 'True' or true_false_statement == 't' or true_false_statement == 'T':
                    number = number + (ord(keyword[keyword_index]) - ord('a'))
                elif true_false_statement == 'false' or true_false_statement == 'False' or true_false_statement == 'F' or true_false_statement == 'f':
                    number = number - (ord(keyword[keyword_index])) - ord('a')
                keyword_index += 1
                keyword_index = keyword_index % len(keyword)
    
                if number >= len(alphabet):
                    number = number - len(alphabet)
                elif number < 0:
                    number = number + len(alphabet)
                translated_message = translated_message + alphabet[number]
            else:
                translated_message = translated_message + character
                return translated_message
    
    def main():
        message = input("Enter string you want to encrypt/decrypt: ")
        keyword = input('Keyword for encryption: ')            
        true_false_statement = ''
        translated_message = fancy_caesar(message, keyword,true_false_statement)
        print(translated_message)
    
    main()
    

    当我进入 message 输入“树懒”,我明白了 没有一个 而不是“tlruh”。

    有办法解决这个问题吗?

    1 回复  |  直到 2 年前
        1
  •  2
  •   sidhartha.k    2 年前

    因为你加了 return translated_message 在…内 else block(上述声明) def main() ).

    移动语句使其与 for 语句,您将获得所需的输出。