0

何かが初めて発生したときに、ブール変数を更新する必要があることに気付きました (そしてその時だけ)。var = not var毎回フリップフロップし続けるので、使用は問題外です。

(ばかげた例で申し訳ありません。もっと賢明なものを見つけるのに苦労しています…)

inner_has_been_two = False
for outer in range(5):
    for inner in range(3):
        if inner == 2:

            if not inner_has_been_two:
                inner_has_been_two = True

        print(inner_has_been_two)

変数にできるだけ「触れ」たくない場合を考えてみましょう。そうしないと、最も内側の - ステートメントを単に省略して、変数を何度も何度も上書きすることができますif

?:基本的に、エルヴィス演算子 ( ) またはヌル合体演算子 (例えば??; は言語によって異なります) (三項条件演算子のバイナリ バージョンなど) をエミュレートするための、より簡潔で Pythonic な方法を探しています。

短く(より)明確にする方法についてのアイデアはありますか?

4

1 に答える 1

1

毎回 True に設定すると、確かに高速です。単一のマシン サイクルであり、並列処理が容易になる可能性があります。あなたがやろうとしていたことのような論理的な何かが欲しいなら:

inner_has_been_true |= True

これも単一サイクルの命令であり、「ビット セット」操作です。の省略形です

inner_has_been_true = inner_has_been_true | True
于 2016-02-26T01:54:10.130 に答える