2016-11-12 64 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

看起来像我不高兴:) –