は、私はPerlでPerlのPythonバージョン= || (= OR)
x = y or 1
を言うのPythonの方法を見つけるように見えることはできません。
$x = $y || 1;
はPythonでこれを行うための良い方法はありますか?
は、私はPerlでPerlのPythonバージョン= || (= OR)
x = y or 1
を言うのPythonの方法を見つけるように見えることはできません。
$x = $y || 1;
はPythonでこれを行うための良い方法はありますか?
Pythonのor
は、私があなたが探しているセマンティクスであると信じています。 the documentationを参照してください。 True
またはFalse
ではなく、入力値が返されることを認識することが重要です。
>>> "" or 12
12
>>> 27 or 9
27
>> None or "default"
'default'
これはx = y or 1
はあなたが後にしている何でなければならないことを意味する必要があり、x
はy
は他に、False
非であれば、それは1
なりますy
になります。 Perlコードが非厳密モードで動作する一方、Yが定義されている場合に動作します言及
単純なものではなく、その素敵な:それはあなたが何をしようとして
if y:
x = y
else:
x = 1
されていません。
x = y if y else 1
x = y or 1
は同じですか?
y = 2
x = y if y else 1
# x == 2
y = None
x = y if y else 1
# x == 1
全ての溶液は、Yは、Pythonは例外をスローします定義されていない場合
(それなしになることはできません)。
'x = y or 1'ではうまくいかないのですか? –
私のプログラムは失敗していて、それが問題だったように見えましたが、そうではありませんでした。 x = yまたは1が正しい。みんなありがとう! – shaneburgess