2016-11-12 43 views
0

我在Microbit上有一個簡單的轉速計數器的代碼。當返回變量rev_per_second時,有時它是一個NoneType(原因未知)。我試圖在功能中捕捉這個,但它似乎不工作。請問我哪裏錯了。英國廣播公司微博MU5上的無類型

# part of the function revs() 

    if end_time < running_time(): 
     try: 
      rev_per_second = rev_per_second 
     except TypeError: 
      rev_per_second = 1  
     return rev_per_second # make this value available to the main program 

# main part of the program    
while True: 
    rev_per_min = revs() # sometimes this is "None" Why?? 
    display.scroll(str(rev_per_min)) 
+0

這裏沒有足夠的上下文來確定,但最有可能的是,將'revs_per_second'初始化或重新設置爲「無」。 –

+0

rev_per_second在while語句之前的函數頂部設置爲1,那麼可以將其設置爲None? – Bobh46320

+0

將您的代碼減少到最小可重現的例子,或鏈接到github上的完整代碼。我們無法猜出答案。 –

回答

-1

說明幾乎可以肯定的是,有一個通過函數的路徑不會在return語句中結束,所以Python默認返回None。

檢查您的revs()函數的所有路徑是否在return語句處結束,否則如果沒有return語句,則Python將返回None

+1

找到了難以回答的答案。這是從函數返回的縮進錯誤。 – Bobh46320

+0

看起來像我不高興:) –

相關問題