2013-05-27 33 views

回答

3

您沒有使用的任何特定原因Python's builtin max?如果沒有指定明確的返回值

功能隱含返回None。因此,在第二個示例中,您正在打印一個不返回任何內容的函數的結果。而函數本身已經在打印結果了。

你的第一個版本是正確的,應該使用什麼版本。

4

爲什麼使用打印不需額外的工作,而且它使用復出之作?

它的工作原理。如果函數沒有返回語句,則函數返回None。在第二種情況下,您只需打印它。

3

這裏是你看到在第一種情況下什麼樣的演示:

>>> def f1(): return 7 
... 
>>> print f1() 
7 

這裏是你看到在第二種情況下什麼的演示:

>>> def f2(): pass 
... 
>>> print f2() 
None 

如果你是希望讓你有更簡潔的第一功能,使用此表:

>>> def bigger(x,y): 
... return x if x>y else y 
... 
>>> print bigger(2,7) 
7 

或者僅使用builin max(如在註釋中規定),具有返回序列的最大的優點是:

>>> max([1,2,3,4,5,6,7]) 
7 
>>> max('abcdefg') 
'g' 

或者做類似的數據元素的最大元素,如元組的第二個整數:

>>> max([(100,2),(50,7)], key=lambda x: x[1]) 
(50, 7) 
+0

...或者'max(x,y)' – soon

2

在第一種情況下,您從函數中返回值然後將其打印 - 因此您有一個輸出。在第二種情況下,您在函數內部打印值,然後嘗試從不返回任何內容的函數輸出 - 因此它先打印值,然後打印空的返回值。