Mik*_*ros 4 python variables function local pycharm
为什么PyCharm彰显boolean附近的变量return用 Local variable "boolean" might be referenced before assignment?
此代码检查数字是否为素数:
import random
import math
import time
def prime_t(x):
print x
if x < 2:
return False
if x == 2:
return True
if x == 3:
return True
for i in range(2, int(math.sqrt(x))+1):
if x % i == 0:
boolean = False
break
else:
boolean = True
return boolean
random.seed()
how_much = input()
start = time.time()
for i in range(0, how_much):
print(prime_t(random.randint(0, 1000)))
print time.time()-start
Run Code Online (Sandbox Code Playgroud)
我读过这可能是全局变量的一些问题,但是没有可能会使用的变量prime_t().我有类似的事情-除了在执行的代码,但我认为它已经消除了if x == 2和if x == 3.
还有什么可能是问题?
PyCharm 不确定是否boolean会被设定.计算代码流是不够智能的,所以它不知道你的for循环总是至少有1次迭代(因为那时x > 3是真的).
相反,它假定for循环中绑定的变量可能永远不会被设置,因此会引发此警告.
解决方法当然是boolean = False在循环之前设置,只是为了关闭它.这只是一个警告,你也可以忽略它,因为IDE试图帮助你,但却被误解了.
对于那些想要忽略这一点的人,请输入
# noinspection PyUnboundLocalVariable
Run Code Online (Sandbox Code Playgroud)
在线以上。
感谢:https://github.com/whitews/pc-inspection-suppression-list/blob/master/suppress-inspection.csv
| 归档时间: |
|
| 查看次数: |
2820 次 |
| 最近记录: |