2016-11-29 117 views
0

提供所需的价值观,我尝试使用以下两种功能:功能不蟒蛇

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 

的FUNC2一次“通行证”被输入时返回None,而不是投入。我究竟做错了什么?

编辑:结果应该是3个整数,不管输入了多少次“通过”。 更改缩进后,我得到以下错误:UnboundLocalError:赋值之前引用的局部变量'second'(在我以传递开始的情况下)

澄清:func2要求输入,如果输入为“pass”,则调用func1 。 打印func1再次调用func2之后。这重复直到输入3个整数。他们的勇敢将在最后归还。

+1

Bad indentation。尝试将最后两行移出while循环。 – duffymo

+1

如果其中一个输入是“pass”,函数应该返回什么? –

+0

如果您输入pass,它会调用func1,然后从头再次调用func2。最后只有整数应该返回 –

回答

1

您的缩进是错误的。您需要移动最后一条语句return first, second, third之前的一个标签。

+0

以下我做了这个,但我得到:UnboundLocalError:本地变量'第二'在赋值之前引用(如果我开始与通过) –

+0

你会有另一个想法有什么问题吗? –

+0

@Al_Iskander你有递归在那里... –