【问题标题】:Why is my variable returning a None value? [closed]为什么我的变量返回 None 值? [关闭]
【发布时间】:2020-07-02 16:07:39
【问题描述】:

https://pastebin.com/BExAC7rJnew_pass = print(str(encrypt(original_pass)))

我把我的代码放在一个 pastebin 里,因为我很笨,不能用这个网站格式化大块的代码。 该代码是一个非常基本的加密器。我需要知道为什么当我尝试打印变量“new_pass”(即加密密码)时,它只会打印为“None”。

#simple password encrypter
def encrypt(phrase):
    encryption = ""
    for letter in phrase:
        if letter in "Aa":
            encryption = encryption + "g"
        elif letter in "Bb":
            encryption = encryption + "r"
        elif letter in "Cc":
            encryption = encryption + "q"
        elif letter in "Dd":
            encryption = encryption + "f"
        elif letter in "Ee":
            encryption = encryption + "z"
        elif letter in "Ff":
            encryption = encryption + "n"
        elif letter in "Gg":
            encryption = encryption + "a"
        elif letter in "Hh":
            encryption = encryption + "v"
        elif letter in "Ii":
            encryption = encryption + "m"
        elif letter in "Jj":
            encryption = encryption + "x"
        elif letter in "Kk":
            encryption = encryption + "s"
        elif letter in "Ll":
            encryption = encryption + "o"
        elif letter in "Mm":
            encryption = encryption + "c"
        elif letter in "Nn":
            encryption = encryption + "u"
        elif letter in "Oo":
            encryption = encryption + "i"
        elif letter in "Pp":
            encryption = encryption + "l"
        elif letter in "Qq":
            encryption = encryption + "w"
        elif letter in "Rr":
            encryption = encryption + "b"
        elif letter in "Ss":
            encryption = encryption + "e"
        elif letter in "Tt":
            encryption = encryption + "p"
        elif letter in "Uu":
            encryption = encryption + "r"
        elif letter in "Vv":
            encryption = encryption + "h"
        elif letter in "Ww":
            encryption = encryption + "y"
        elif letter in "Xx":
            encryption = encryption + "d"
        elif letter in "Yy":
            encryption = encryption + "j"
        elif letter in "Zz":
            encryption = encryption + "g"
        elif letter in "1":
            encryption = encryption + "6"
        elif letter in "2":
            encryption = encryption + "1"
        elif letter in "3":
            encryption = encryption + "5"
        elif letter in "4":
            encryption = encryption + "2"
        elif letter in "5":
            encryption = encryption + "10"
        elif letter in "6":
            encryption = encryption + "7"
        elif letter in "7":
            encryption = encryption + "9"
        elif letter in "8":
            encryption = encryption + "3"
        elif letter in "9":
            encryption = encryption + "8"
        elif letter in "0":
            encryption = encryption + "4"
    return encryption

original_pass = input("Enter raw password: ")
new_pass = print(str(encrypt(original_pass)))

【问题讨论】:

  • 欢迎来到stackoverflow。打印函数返回不返回任何内容。所以 new_pass 将是无。从行中删除打印功能,它应该可以工作。

标签: python python-3.x


【解决方案1】:

你不需要打印变量,使用:

new_pass = str(encrypt(original_pass))

【讨论】:

  • 我更改了它,现在我还可以将加密保存到文件中。 TYSM
【解决方案2】:

你做到了:

new_pass = print(str(encrypt(original_pass)))

这将 print 返回的内容分配给new_pass,而print 总是返回None。制作它:

new_pass = encrypt(original_pass)
print(new_pass)

该函数已经返回一个str,所以我删除了str() 包装。

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 2020-02-07
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2013-07-13
    • 1970-01-01
    相关资源
    最近更新 更多