原文鏈接:http://learnpythonthehardway.org/book/ex21.html
你已經使用過 = 字符來給一個命名的變量賦予一個數值或者字符串。現在我打算再向你展示一個引起你頭腦風暴的內容,我將展示如何使用 = 字符和Python中一個新的關鍵字reaturn來一個來自函數的返回值賦給一個變量。這裏可能有一件事情你需要特別注意,但是你還是餡餅下面的代碼輸入先:
def add(a ,b):
print "ADDING %d + %d" % (a ,b)
return a + b
def subtract(a ,b):
print "SUBTRACTING %d - %d" % (a ,b)
return a - b
def multiply(a ,b):
print "MULTIPLYING %d * %d" % (a ,b)
return a * b
def divide(a ,b):
print "DIVIDING %d / %d" % (a ,b)
return a / b
print "Let's do some math with just functions!"
age = add(30 ,5)
height = subtract(78 ,40)
weight = multiply(90 ,2)
iq = divide(100 ,2)
print "Age: %d, Height: %d, Weight: %d, IQ: %d" % (age ,height ,weight, iq)
#A puzzle for the extra credit ,type it in anyway
print "Here is a puzzle."
what = add(age ,subtract(height ,multiply(weight ,divide(iq ,2))))
print "That becomer:" ,what ,"Can you do it by hand?"
我們現在可以用我自己寫的 add ,subtract ,multiply ,divide函數來做數學運算。這裏最重要的東西就是在 add 函數裏面的最後一行 return a + b這句代碼。它依次做了下面這些事情:
1、我們的函數要帶有兩個參數 a 和 b來被調用。
2、我們打印出我們函數正在做什麼事情,在這裏在做 “ADDING"操作。
3、然後我們讓Python做一個回傳的操作:我們返回了 a + b相加後的值。你可以像這樣描述它,“我讓 a 和 b相加然後返回其相加的結果”。
4、Python 會將這兩個數值相加。然後當函數結束的時候,在調用了這個函數任何一行都可以將 a+b的結果賦給某一個變量。
和這本書中其他東西一樣,你應該慢慢消化這些知識點,試着一步一步跟蹤看看發生了什麼。爲了讓你更好的理解這裏需要你解決一個加分難題,它會讓你學到一些很酷的東西。
輸出的結果如下:
c:\>python ex21.py
Let's do some math with just functions!
ADDING 30 + 5
SUBTRACTING 78 - 40
MULTIPLYING 90 * 2
DIVIDING 100 / 2
Age: 35, Height: 38, Weight: 180, IQ: 50
Here is a puzzle.
DIVIDING 50 / 2
MULTIPLYING 180 * 25
SUBTRACTING 38 - 4500
ADDING 35 + -4462
That becomer: -4427 Can you do it by hand?
研究訓練:
1、如果你還是無法確認return到底做了什麼話,那你試着寫一些你自己的函數讓它們返回一些值。你可以返回任何可以放在 = 右邊的任何東西。2、在腳本的最後面是一個加分題。我把一個函數返回來的值又作爲另一個函數的參數。我將它們鏈接到了一起,就跟寫數學等式一樣。這看起來好像有點奇怪,不過你運行腳本的話會看到它輸出結果。你要試試看能不能用正常的方法寫一個和這個功能一樣的公式。
3、一旦你寫出了公式解決了這個難題,那麼就修改其中的部分函數看看會發生什麼。試着有姆地區的改變它來計算出其它的值。
4、最後,做相反的操作。寫一個簡單的數學公式然後用同樣的方法調用函數來計算它。
這個練習可能會讓你感到頭大,不過不要急慢慢來,就像把它當做一個小遊戲來對待。解決這種謎題是編程的樂趣之一。後面我們將給你更多這樣的小謎題。