隨筆記錄方便自己和同路人查閱。
#------------------------------------------------我是可恥的分割線-------------------------------------------
如果調用len()函數,並向它傳入向'Hello'這樣的參數,函數調用就求值為整數5。這是傳入的字符串的長度。一般來說,函數調用
求值的結果,稱為函數的“返回值”。
用def語句創建函數時,可以用return語句指定應該返回什么值。return語句包含以下部分:
(1)return關鍵字
(2)函數應該的值或表達式
如果在return語句中使用了表達式,返回值就是該表達式求值的結果。
#------------------------------------------------我是可恥的分割線-------------------------------------------
例如,下面的程序定義了一個函數,它根據傳入的數字參數,返回一個不同的字符串。在文件編輯器中輸入一下代碼,
並保存為magic8Ball.py:

1 # 2 # -*- coding:utf-8 -*- 3 # Autor: Li Rong Yang 4 import random 5 6 def getAnswer(answerNumber): 7 if answerNumber == 1: 8 return 'It is certain' 9 elif answerNumber == 2: 10 return 'It is decidedly so' 11 elif answerNumber == 3: 12 return 'Yes' 13 elif answerNumber == 4: 14 return 'Reply hazy try again' 15 elif answerNumber == 5: 16 return 'Ask again later' 17 elif answerNumber == 6: 18 return 'Concentrate and ask again' 19 elif answerNumber == 7: 20 return 'My reply is no' 21 elif answerNumber == 8: 22 return 'Outlook not so good' 23 elif answerNumber == 9: 24 return 'Very doubtful' 25 26 r = random.randint(1,9) 27 fortune = getAnswer(r) 28 print(fortune) 29
運行結果:
在這個程序開始時,Python首先導入random模塊。然后getAnswer()函數被定義。因為函數是被定義(而不是被調用),所以執行會跳過其中的代碼。接下來,
random.randint()函數被調用,帶兩個參數1和9。它求值為1和9之間的一個隨機整數(包括1和9),這個值被存在一個名為r的變量中。
getAnswer()函數被調用,以r作為參數。程序執行轉移到getAnswer()函數的頂部,r的值被保存到名為answerNumber的變元中。然后,根據answerNumber中
的值,函數返回許多可能字符串中的一個。程序執行返回到程序底部的代碼行,即原來調用getAnswer()的地方。返回的字符串被賦給一個名為fortune變量,然后它
又被傳遞給print()調用,並被打印在屏幕上。
請注意,因為可以將返回值作為參數傳遞給另一個函數調用,所以你可以將下面3行代碼
r = random.randint(1,9) fortune = getAnswer(r) print(fortune)
縮寫成一行等價的代碼:
print(getAnswer(random.randint(1,9)))
記住,表達式是值和操作符的組合。函數調用可以用在表達式中,因為它求值為它的返回值。