これは愚かなことかもしれませんが、私はこのような使い方があるかどうかを知りたいと思います。if/else in python
私のコードは次のとおりです。
print(a (+=) if a==1 else (-=) b)
は、私はそれがやりたいことは、もちろん
if a==1:
print(a+b)
else:
print(a-b)
これは愚かなことかもしれませんが、私はこのような使い方があるかどうかを知りたいと思います。if/else in python
私のコードは次のとおりです。
print(a (+=) if a==1 else (-=) b)
は、私はそれがやりたいことは、もちろん
if a==1:
print(a+b)
else:
print(a-b)
あなたは三項条件演算子使用してこれを行うことができます。
:a == 1
がtrueの場合、それは
a - b
デモの結果を保持する他、a + b
の結果を保持する
a = a + b if a == 1 else a - b
を
a = 4
b = 2
# a should equal to 2
a = a + b if a == 1 else a - b
a = 1
b = 2
# a should equal to 3
a = a + b if a == 1 else a - b
の詳細を集中すべき –
アイデアありがとう:) –
@DeepakKrishnaよろしくお願いします。それが他の読者に役立つと分かったことを示すように、あなたを助けた答えを受け入れることを忘れないでください。 – idjaw
a = a+b if a==1 else a-b
は正気と合理的な人のアプローチであるので、ここではより直接的に2つの場所でのオペランドを繰り返す必要がなくなり、操作、オペランドを含まない完全な表現を選択少ない健全なバージョンがあります:
a = (isub, iadd)[a == 1](a, b)
01:索引
tuple
に
bool
Sを用い
from operator import iadd, isub # Like to += and -=, but you need to assign return
a = (iadd if a == 1 else isub)(a, b)
またはさらにより簡潔/非常識
明らかに、これは愚かです。ちょうどa = a+b if a==1 else a-b
を使用してください。
ありがとう、それは私に将来的に使用する多くのオプションを与えた:) –
amountPaid.groupは、(1)場合: shelfFile [STR(名)+ 'バランス'] + =フロート(amountPaid.group(2))他 : shelfFile [STR(名)+ 'バランス'] - = float(amountPaid.group(2))。これは実際のコードなので、上記を行うと大きな行が生成されます。 –
'shelfFile [str(name)+ 'balance'] + = float(amountPaid.group(2))もしamountPaid.group(1)ならばshelfFile [str(name)+ 'balance'] - = float (2)) ':) – Signal
コードの長さを減らすことはできますか? –