質問

可能な重複:
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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top