我定义了一个函数,我可以调用该函数将用户的输入存储为变量, 确保它是一个数字,然后在代码中将数字转换为公式的整数。
所以想法是,当程序到达天时,它会提示用户输入 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>
答案 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(...)