你的課本希望你嘗試在interactive interpreter,這表明,當你進入他們你重視的事。下面是一個示例:
$ python
Python 2.7.5+ (default, Sep 17 2013, 17:31:54)
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def sqrt(n):
... approx = n/2.0
... better = (approx + n/approx)/2.0
... while better != approx:
... approx = better
... better = (approx + n/approx)/2.0
... return approx
...
>>> sqrt(25)
5.0
>>>
這裏關鍵的是表達式和語句之間的區別。 def
是一個聲明,並沒有結果。塊定義的sqrt
是一個函數;而函數總是產生一個返回值,這樣它們就可以用在表達式中,如sqrt(25)
。如果您的函數不包含return
或yield
,則此值爲None
,解釋程序忽略此值,但在此情況下,sqrt會返回一個自動打印的數字(並存儲在名爲_
的變量中)。在腳本中,您可以用print sqrt(25)
替換最後一行以將輸出提供給終端,但返回值的有用之處在於您可以進行進一步處理,例如root=sqrt(25)
或print sqrt(25)-5
。
如果我們要像腳本一樣運行完全相同的行,而不是在交互模式下,則不會出現隱式打印。行sqrt(25)
被接受爲表達式的語句,這意味着它被計算 - 但是然後該值被簡單地丟棄。它甚至沒有進入_
(這與計算器的Ans按鈕相同)。通常情況下,我們將這個用於導致副作用的函數,如quit()
,這會導致Python退出。
順便說一下,print
是Python 2中的一個語句,但是是Python 3中的一個函數。這就是爲什麼越來越多的使用它有括號。
這裏是一個腳本,它依賴於sqrt
(在這種情況下Python的自己的版本)返回值:
from math import sqrt
area = float(raw_input("Enter a number: "))
shortside = sqrt(area)
print "Two squares with the area", area, "square meters,",
print "placed side to side, form a rectangle", 2*shortside, "meters long",
print "and", shortside, "meters wide"
'A =開方(25);打印的(a);' – rlms