return
の変数Local variable "boolean" might be referenced before assignment
の近くでPyCharmがboolean
変数を強調表示するのはなぜですか?数が素数であるかどうかをPyCharmは、ローカル変数が参照される可能性があることを警告します
このコードをチェック:
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
私はそれがグローバル変数といくつかの問題がある可能性があります読みましたが、prime_t()
で使用されるかもしれない何ものはありません。コードを実行しているときにも同様のことがありましたが、if x == 2
とif x == 3
で排除されていると思います。
その他に何か問題がありますか?
私は "ブール値"のデフォルト値を設定するとそれを修正することが分かっていましたが、冗長なコードを避けたいと思います。私はそれがちょうどPyCharmだとは思わなかった。手伝ってくれてありがとう! PS:コメント形式は申し訳ありませんが、ここでは新しいので、 "ブール値"のコード形式を設定する方法を知りませんでした。 – Mikeros
まあ、不要なコードを減らすには、ループの前に 'boolean = True'を設定し、else部分をif文から削除します。 – Anders