Python <function functionname =“”at =“”0x00000000 =“”>

时间:2015-10-14 13:29:52

标签: python function python-3.x input

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

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

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

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

这最终看起来像&lt; function functionName at 0x013A1300&gt;

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

getAnswer本身就是一个功能。你没有这样称呼它,例如,像这样:

getAnswer(1)

我怀疑你试图做的是

days = getAnswer(input())

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