Python<;0x00000000处的函数functionName>;

Python<;0x00000000处的函数functionName>;,python,function,python-3.x,input,Python,Function,Python 3.x,Input,我定义了一个函数,我可以调用它来将用户的输入存储为变量, 确保它是一个数字,并将该数字转换为整数,以便稍后在代码中使用公式 因此,当程序运行到天时,它会提示用户输入getAnswer,从而启动函数,检查用户给出的答案,并将其转换为整数。与工作时的情况相同 def getAnswer(a): while True: if a.isdecimal(): a = int() break print('Numbers

我定义了一个函数,我可以调用它来将用户的输入存储为变量, 确保它是一个数字,并将该数字转换为整数,以便稍后在代码中使用公式

因此,当程序运行到时,它会提示用户输入getAnswer,从而启动函数,检查用户给出的答案,并将其转换为整数。与工作时的情况相同

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

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

这就是它最终看起来的样子,它本身就是一个函数。例如,您不是这样称呼它:

getAnswer(1)
我怀疑你想做的是

days = getAnswer(input())

请注意,评估顺序是从内到外。换句话说,将首先计算
input()
,然后通过传递函数而不是提示用户的字符串来调用
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习惯用法;你能编辑一下澄清一下吗?另外,似乎
getAnswer
实际上并没有返回任何内容。我试图尽我所能为大家清理语言,我对Python还是非常陌生。“在输入部分跟随我的光标”?!编辑完成后,这张图片比我想写的文字更有价值=\这修正了问题,我更了解函数,谢谢!