を簡単な場合-その他計算書一線【複製]
-
25-09-2019 - |
質問
可能な重複:
Python Ternaryオペレーター
私にPythonんのようにtersenessの構文です。しかし、あくする if
-then
-else
計算書での様子をよく見て、発見したことにかかってしまいます。
例えば:
if count == N:
count = 0
else:
count = N + 1
あるように書く。だって、Objective-Cうに書くこと
count = count == N ? 0 : count + 1;
がとても気に入ったPython?
更新
知っているこのインスタンスが使用できます count == (count + 1) % N
.
私は、一般構文です。
解決
それより具体的には、 ternaryオペレーター 表情による場合-そこでここでは、python構文
value_when_true if condition else value_when_false
より良い例: (感謝 氏焼)
'Yes' if fruit == 'Apple' else 'No'
現在入力された場合には、コントラストのある書式
fruit = 'Apple'
isApple = True if fruit == 'Apple' else False
vs
fruit = 'Apple'
isApple = False
if fruit == 'Apple' : isApple = True
他のヒント
また、あなたはまだ「普通の」if
構文を使用して、コロンと一行にそれをconflateすることができます。
if i > 3: print("We are done.")
または
field_plural = None
if field_plural is not None: print("insert into testtable(plural) '{0}'".format(field_plural))
count = 0 if count == N else N+1
- 三項演算子。私が言うと思いますが、あなたのソリューションは、これよりも読みやすいです。
一般三構文ます:
value_true if <test> else value_false
別の方法をすることができます:
[value_false, value_true][<test>]
例えばます:
count = [0,N+1][count==N]
これは、1つを選択する前に、両方の枝を評価します。
:選択したブランチのみを評価するために、[lambda: value_false, lambda: value_true][<test>]()
例えば:ます。
count = [lambda:0, lambda:N+1][count==N]()
<execute-test-successful-condition> if <test> else <execute-test-fail-condition>
あなたのそれはなるコード・スニペット、と
count = 0 if count == N else N + 1
所属していません StackOverflow