2011-01-30 66 views
4

我想知道在python相當於這將是什麼:什麼是x =(10 <n)的Python等價物? 10:n;

n = 100 
x = (10 < n) ? 10 : n; 
print x; 

出於某種原因,這並不在Python工作。我知道我可以使用if語句,但我只是好奇,如果有一些較短的語法。

謝謝。

+0

是什麼讓你認爲``和`:`形成Python中的合法運營商?你在哪裏見過這樣的代碼?你正在使用什麼教程? – 2011-01-30 14:02:47

+1

我沒有;我是以JavaScript語法爲基礎的; – David 2011-02-07 02:14:39

回答

17
x = min(n, 10) 

,或者更一般:

x = 10 if 10<n else n 
1
>>> n = 100 
>>> x = 10 if n > 10 else n 
>>> x 
10 
1
x = 10 if (10 < n) else n 

(需要蟒2.5)

4

有不同的方法,使三元操作,第一個是2.5添加了表情:

n = foo if condition else bar 

如果你想與版本兼容低於2.5,你可以利用一個事實,即布爾是從int子類和True行爲就像1False行爲像0

n = [bar, foo][condition] 

另一種可能性是利用操作者的方式在Python的行爲或者更確切地說是如何andor的行爲:

n = condition and foo or bar 
相關問題