目錄前言
函式定義函式
匿名函式
實參和形參
傳遞實參
位置實參
關鍵字實參
形參預設值 最後
如何使程式的編寫、閱讀、測試和修復變得更簡單呢,對啦,我們可以使用函式,接下來我們將學習有關函式的知識。
我們可以定義屬於自己的函式,語法格式為:
def 函式名(引數列表):
函式體
定義函式的規則如下:
任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。
函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。
函式內容以冒號 : 起始,並且縮排。
return [表示式]結束函式,選擇性地返回乙個值給呼叫方,不帶表示式的 return 相當於返回 none。
我們來做個簡單的例子,定義乙個列印「hello world!」的函式:
def hello() : #定義乙個hello函式
print("hello world!")
hello() #呼叫函式
python 使用 lambda 來建立匿名函式,即不再使用 def 語句這樣標準的形式定義乙個函式。
lambda 函式的語法只包含乙個語句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
例如
sum = lambda arg1, arg2: arg1 + arg2
print ("相加後的值為 : ", sum( 10, 20 )) # 呼叫sum函式
print ("相加後的值為 : ", sum( 20, 20 ))
輸出結果為:
相加後的值為 : 30
相加後的值為 : 40
我們來看下面的例子:
def user(username): #定義乙個user函式,乙個名為username的形參
print("hello,"+username+"!")
user("lin") #呼叫user函式,並傳遞實參lin
輸出結果為:
hello,lin!
向函式傳遞實參的方式有很多,我們將一一講解。
要求實參的順序與形參的順序相同,就是實參和形參一一對應,例如:
def pet(type,name): #我們定義了pet函式和type、name形參
print("\n我有乙個寵物 "+type+",")
print("我的"+type+"名字是 "+name+".")
pet('dog','hero') #呼叫函式,傳遞實參dog和hero
輸出結果為:
我有乙個寵物 dog,
我的dog名字是 hero.
關鍵字實參讓我們無需考慮函式呼叫中的實參順序,還清楚地指出了函式呼叫中各個值的用途,每個實參都由變數名和值組成,變數名為形參名,例如:
def pet(type,name): #定義乙個函式pet和形參type、name
print("\n我有乙個寵物 "+type+",")
print("我的"+type+"名字是 "+name+".")
pet(name='hero',type='dog') #使用關鍵字實參
輸出結果為:
我有乙個寵物 dog,
我的dog名字是 hero.
注意:使用關鍵字實參時,務必準確地指定函式定義中的形參名。
編寫函式時,我們可以給每個形參指定預設值。當python沒有使用指定的實參值時,將會使用形參的預設值。例如:
def pet(type,name='hero'): #定義函式pet和形參type、name,其中name值為hero
print("\n我有乙個寵物 "+type+",")
print("我的"+type+"名字是 "+name+".")
pet('dog') #呼叫函式pet,傳遞實參dog
輸出結果為:
我有乙個寵物 dog,
我的dog名字是 hero.
Python基礎 時間函式使用
import time 返回當前時間的時間戳 1970紀元後經過的浮點秒數 print time.time 用以浮點數計算的秒數返回當前的cpu時間。用來衡量不同程式的耗時,比time.time 更有用 print time.clock 接收時間戳 1970紀元後經過的浮點秒數 並返回格林威治天文時...
python 函式基礎以及lambda使用
round x,n 這樣表示n可以被省略 def name return xxdef babble words,times 1 with default arguments return words times print babble kldjkd 2 print babble kldjkd pr...
Python 基礎 函式的使用 引數
在宣告函式時,如果有一些引數是執行時的必要條件,或者說在編寫的過程中大量出現,則可以把它設為預設值引數。呼叫函式時,如果沒有傳入對應的實參值,則函式使用宣告時則使用預設值引數。def babble words,time 1 print word time 對babble 進行呼叫 babble he...