【问题标题】:Python <function functionName at 0x00000000>Python <function functionName at 0x00000000>
【发布时间】:2015-10-14 13:29:51
【问题描述】:

我正在定义一个函数,我可以调用它来将用户的输入存储为变量, 确保它是一个数字,然后在后面的代码中将这个数字转换为一个整数用于公式。

所以这个想法是,当程序到达 days 时,它会提示用户输入 getAnswer,这会启动该函数,以检查用户给出的答案,然后将其转换为整数。 工作

也是如此
def getAnswer(a):
    while True:
        if a.isdecimal():
            a = int()
            break
        print('Numbers only please...')

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

这就是它最终的样子 function functionName at 0x013A1300>

【问题讨论】:

  • 我完全不清楚你想在这里问什么;你能编辑澄清一下吗?此外,getAnswer 似乎实际上并没有返回任何内容。
  • 我尽力为每个人清理语言,我对 Python 还是很陌生。
  • “在输入部分跟随我的光标”?!
  • 编辑完成,图片比我试图给它的文字更有价值。 =\

标签: python function python-3.x input


【解决方案1】:

您通过传递函数而不是提示用户的字符串来调用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 习语。

【讨论】:

  • 这解决了问题,我更了解功能,谢谢!
【解决方案2】:

getAnswer 本身就是一个函数。例如,您不会像这样调用它:

getAnswer(1)

我怀疑你试图做的是

days = getAnswer(input())

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

【讨论】:

    猜你喜欢
    • 2014-11-16
    相关资源
    最近更新 更多