为什么我的代码打印 "built-in method" 和一些十六进制数字?

Why does my code print "built-in method" and some hex numbers?

这是我的主要功能:

def Key(message, decision):
    key = input("Input the key which will be used to encode the message.\n".lower)
    n = 0
    for i in range(len(key)):
        if 64 < ord(key[n]) < 91:
            raise ValueError(key[n], "is a capital letter!")
        else:
            n = n+1
    Keycode(decision, message, key)

当我调用它并输入消息并按回车键时,它会出现:

built-in method lower of str object at 0x0150E0D0

怎么了?我该如何解决?

Key 包含这个有问题的行:

key = input("Now, input the key which will be used to encode the message.\n".lower)

当您(可能)想传递字符串然后将 lower 应用于 [=12= 时,input 将字符串的 lower 方法作为输入传递] returns.

.upper.lower之后必须有一对右括号。您可以在其中放置自定义参数,但如果您只想将输入大写,请将它们留空。

示例:

user=(input("Enter a letter:")).upper()

这会将大小写更改为大写。

尝试在您的工作中保存您的工作space。如果您使用 Python 提示检查结果,请使用 exit() 命令并再次打开 Python 提示。然后像之前一样尝试调用之前的函数。

你需要在 lower 之后使用一对右括号

key = input("Input the key which will be used to encode the message.\n".lower())
key = input("Input the key which will be used to encode the message.\n".lower)

因为下层函数缺少括号,所以在函数调用后加上括号。所以语法就像 key = input("Input the key which will be used to encode the message.\n".lower())