教科書では、インタラクティブ インタープリターで試してみることを期待しています。インタラクティブ インタープリターでは、値を入力すると値が表示されます。これがどのように見えるかの例を次に示します。
$ 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
。def
関数は常に戻り値を生成するため、 のような式で使用できます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"