为什么我的代码打印“内置方法”和一些十六进制数字?

问题描述 投票:0回答:6

这是我的关键功能:

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 处的内置方法

怎么了?我该如何解决它?

python built-in
6个回答
17
投票

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

示例:

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

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


3
投票

您需要在 lower 后使用一对闭括号

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

1
投票

Key
包含这个有问题的行:

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

当您(大概)想要传递字符串,然后将

input
应用于
lower
返回的内容时,它会作为输入传递给
lower
字符串的
input
方法。


1
投票
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())


0
投票

.lower() 方法是 str 类的方法。 .lower() 将字符串转换为小写。为了调用 lower() 方法,您需要编写方法名称(.lower 或 .upper),后跟括号()。


-4
投票

尝试将您的工作保存在您的工作空间中。如果您使用 Python 提示符检查结果,请使用

exit()
命令并再次打开 Python 提示符。然后尝试像之前那样调用之前的函数。

© www.soinside.com 2019 - 2024. All rights reserved.