我想知道在python相當於這將是什麼:什麼是x =(10 <n)的Python等價物? 10:n;
n = 100
x = (10 < n) ? 10 : n;
print x;
出於某種原因,這並不在Python工作。我知道我可以使用if語句,但我只是好奇,如果有一些較短的語法。
謝謝。
我想知道在python相當於這將是什麼:什麼是x =(10 <n)的Python等價物? 10:n;
n = 100
x = (10 < n) ? 10 : n;
print x;
出於某種原因,這並不在Python工作。我知道我可以使用if語句,但我只是好奇,如果有一些較短的語法。
謝謝。
這是Python中的ternary operator(在文檔中也被稱爲conditional expressions)。
x if cond else y
感謝賈尼;這非常有幫助; – David 2011-02-07 02:15:17
x = min(n, 10)
,或者更一般:
x = 10 if 10<n else n
>>> n = 100
>>> x = 10 if n > 10 else n
>>> x
10
10 if 10 < n else n
x = 10 if (10 < n) else n
(需要蟒2.5)
有不同的方法,使三元操作,第一個是2.5添加了表情:
n = foo if condition else bar
如果你想與版本兼容低於2.5,你可以利用一個事實,即布爾是從int
子類和True
行爲就像1
而False
行爲像0
:
n = [bar, foo][condition]
另一種可能性是利用操作者的方式在Python的行爲或者更確切地說是如何and
和or
的行爲:
n = condition and foo or bar
是什麼讓你認爲``和`:`形成Python中的合法運營商?你在哪裏見過這樣的代碼?你正在使用什麼教程? – 2011-01-30 14:02:47
我沒有;我是以JavaScript語法爲基礎的; – David 2011-02-07 02:14:39