Python <function functionName at 0x00000000>

3
我正在定义一个函数,可以将用户输入的内容存储为变量,确保它是一个数字,并将该数字转换为整数以便稍后在代码中使用公式。
因此,当程序到达“天数”时,它会提示用户输入“getAnswer”,这将启动函数,检查用户给出的答案并将其转换为整数。同样的操作也适用于“工作日”。
def getAnswer(a):
    while True:
        if a.isdecimal():
            a = int()
            break
        print('Numbers only please...')

days = input(getAnswer)
worked = input(getAnswer)

这就是最终的显示效果 <函数 functionName 位于 0x013A1300>


1
我并不清楚你在这里尝试询问什么,你能否编辑一下以澄清?另外,getAnswer似乎并没有返回任何内容。 - jonrsharpe
我尽力为大家清理了语言,但我在Python方面仍然非常新手。 - user5377794
“follows my cursor at the input parts”?! - jonrsharpe
修改了,这张图片比我试图表达的话更有价值。 =\ - user5377794
2个回答

3

你正在调用input函数并传递了一个函数,而不是一个字符串提示用户输入。也许你想要这样:

days = getAnswer()

getAnswer()被定义为使用input获取用户的响应,验证它,然后返回它。例如:

def getAnswer():
    while True:
        a = input()
        try:
            return int(a)
        except ValueError:
            print('Numbers only please...')

在我看来,这比将输入函数传递给 getAnswer() 更清晰,而且 try...except 语句是一种常见且易于理解的 Python 习惯用法。

这解决了问题,我对函数的理解更深了,谢谢! - user5377794

0

getAnswer本身就是一个函数。你不需要像这样调用它:

getAnswer(1)

我猜想你尝试的是

days = getAnswer(input())

请注意,评估的顺序是从内部到外部。换句话说,首先评估input(),然后再评估getAnswer(...)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接