2
用下面的代碼Python的優先
import sys
print "Hello " + sys.argv[1] if len(sys.argv) > 1 else "Joe" + "."
當我運行
python hello.py
,我得到Joe.
- 該Hello
丟失。python hello.py Nick
,我得到Hello Nick
- 期間'。'最終失蹤。
但是,當我改變代碼覆蓋三元操作與()
,那麼它工作正常。
import sys
print "Hello " + (sys.argv[1] if len(sys.argv) > 1 else "Joe") + "."
當我運行
python hello.py
,我得到Hello Joe.
python hello.py Nick
,我得到Hello Nick.
有人能解釋爲什麼不同的行爲時,我不包括三元操作員用大括號。
這就是所謂的[條件表達式(http://docs.python.org/2/reference/expressions。 HTML#條件表達式);它是一個**三元操作符。它恰好是目前唯一的三元操作符,但是您始終不會調用''''和''''二元操作符。 –
這是'format'幫助的地方。 'print'Hello {}。「。format(sys.argv [1] if len(sys.argv)> 1 else」Joe「)':) – thefourtheye