【发布时间】:2016-11-29 21:21:20
【问题描述】:
我正在尝试使用以下两个功能:
def func1():
print('blahblah')
func2()
def func2():
check = 0
while check < 1:
first = input('Integer or pass ')
if first == 'pass':
first = 0
func1()
break
else:
first = int(first)
second = input('Integer or pass')
if second == 'pass':
second = 0
func1()
break
else:
second = int(second)
third = input('Integer or pass' )
if third == 'pass':
third = 0
func1()
break
else:
third = int(third)
check = 1
return first, second, third
一旦输入“pass”,func2 将返回 None 而不是输入。我做错了什么?
编辑:无论输入多少次“通过”,结果都应该是 3 个整数。 更改缩进后,我收到以下错误:UnboundLocalError: local variable 'second' referenced before assignment(以防我从 pass 开始)
为了澄清:func2 要求输入,如果输入是“通过”,则调用 func1。 在 print func1 再次调用 func2 之后。重复此过程,直到输入 3 个整数。他们的值最终会返回。
【问题讨论】:
-
缩进错误。尝试将最后两行移出 while 循环。
-
如果输入之一是
pass,函数应该返回什么? -
如果你输入 pass,它会调用 func1,然后再从头开始调用 func2。最后只返回整数
-
缩进导致另一个错误(请参阅我的评论以回答下面的@Jarvis
标签: function python-3.x