2016-11-29 116 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你有遞歸在那裏... –