这是我的关键功能:
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)
当我调用它并输入消息并按 Enter 键时,它会显示:
str 对象下方 0x0150E0D0 处的内置方法
怎么了?我该如何解决它?
在
.upper
或.lower
之后必须有一对闭括号。您可以在其中放入自定义参数,但如果您只想将输入大写,请将它们留空。
示例:
user=(input("Enter a letter:")).upper()
这会将大小写更改为大写。
您需要在 lower 后使用一对闭括号
key = input("Input the key which will be used to encode the message.\n".lower())
Key
包含这个有问题的行:
key = input("Now, input the key which will be used to encode the message.\n".lower)
当您(大概)想要传递字符串,然后将
input
应用于 lower
返回的内容时,它会作为输入传递给 lower
字符串的 input
方法。
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())
.lower() 方法是 str 类的方法。 .lower() 将字符串转换为小写。为了调用 lower() 方法,您需要编写方法名称(.lower 或 .upper),后跟括号()。
尝试将您的工作保存在您的工作空间中。如果您使用 Python 提示符检查结果,请使用
exit()
命令并再次打开 Python 提示符。然后尝试像之前那样调用之前的函数。