1. ホーム
  2. python

[解決済み] "if a or b or c but not all of them "のPython構文

2022-05-29 10:10:29

質問

私は、ゼロまたは3つのコマンドライン引数を受け取ることができるPythonスクリプトを持っています。 (デフォルトの動作で実行するか、3つの値すべてを指定する必要があります)。

みたいなのは、どういう構文が理想的なんだろう。

if a and (not b or not c) or b and (not a or not c) or c and (not b or not a):

?

どのように解決するのですか?

最小限の形ということなら、これでいいんです。

if (not a or not b or not c) and (a or b or c):

というのは、質問のタイトルを翻訳したものです。

UPDATE: VolatilityとSuprが正しく言っているように、De Morganの法則を適用して同等のものを得ることができます。

if (a or b or c) and not (a and b and c):

私のアドバイスは、あなたや他のプログラマにとってより重要な形式を使うことです。最初の意味は 偽のものもあるが、真のものもある。 であり、2つ目は "何か真実があるが、すべてではない"。 . もし私が最適化したりハードウェアでこれを行うなら、2番目を選ぶでしょう。ここでは、最も読みやすいものを選んでください(あなたがテストする条件とその名前も考慮してください)。私は1番を選びました。