[Python3入門與進階]8 函式
阿新 • • 發佈:2019-01-04
目錄
8-1認識函式
函式的作用
函式的作用 | |
---|---|
1 | 功能性 |
2 | 隱藏細節 |
3 | 避免編寫重複的程式碼 |
4 | 組織程式碼(面向物件) |
round()
函式
ptint()
a = 1.12386
print (round(a,2))
優化後函式
#優化後函式
a = 1.12386
reslt = round(a,2)
print (reslt)
round(a,x)
為內建函式, x 為保留幾位(四捨五入)
檢視內建函式用法help()
>>> help(round)
Help on built-in function round in module builtins:
round(...)
round(number[, ndigits]) -> number
Round a number to a given precision in decimal digits (default 0 digits).
This returns an int when called with one argument, otherwise the
same type as the number. ndigits may be negative.
>>>
可以通過help()
方式檢視內建函式用法
8-2 函式的定義及執行特點
函式基本結構
#函式基本結構
def funcanme(parameter_list):
pass
#4個空格縮排
def | funcanme | (parameter_list) | : |
---|---|---|---|
關鍵字定義函式 | 函式名稱 | 引數列表 | 冒號 |
- 引數列表可以沒有
- reture value(如果沒有return,預設Value為None
函式定義舉例
#實現兩個數字相加
#列印輸入的引數
def add(x,y)
result = x+y
return result
def print_code(code)
print(code)
a = add(1,1)
b = print_code('Python')
print (a)
print (b)
print(a,b)
#列印結果
>>>Python
3 None
- 因為在
print_code
沒有定義return,所有返回None
8-3 如何讓函式返回多個結果
def damage(slill1,skill2):
damage1 = skill1 * 3
damage2 = skill2 * 2 +10
return damage1, damage2
skill1_damage, skill2_damage = damage(3, 6)
#序列解包
print(skill1_damage, skill2_damage)
8-4 序列解包與鏈式賦值
序列解包
a = 1
b = 2
c = 3
a, b, c = 1, 2, 3
d = 1, 2, 3
print(type(d))
#序列解刨為以上過程相反 a, b, c = d
a, b, c = [1, 2, 3] #序列
d = 1 ,2 ,3
a, b, c = d
#輸出
<class 'tuple'>
- d 的型別顯示為一個序列
- 元素解刨元素個數要相等
鏈式賦值
a = 1
b = 1
c = 1
as
a =b =c =1
as
a, b, c =1, 1, 1
#輸出
1 1 1
- 以上a,b, c 值都等於 1
8-5 必須引數與關鍵字引數
函式是Python最基本的資料單元
引數的型別
- 必須引數(必須為每個值賦值)
- 形式引數 (函式定義的過程中)
- 實際引數(呼叫函式的過程中,傳遞給引數列表 )
關鍵字引數(函式的呼叫上有所區別)
def add(x, y)
result = x + y
return result
c = ddd(y=3, x=2)
#用 c 記錄呼叫 add 函式的過程,關鍵字引數,明確指定 形參 賦值
- 提高程式碼的可讀性,不需要強制記憶函式。
8-6 預設引數
程式碼例項
def print_student_files(name, gender, age, college):
print('我叫' + name)
print('我今年' + str(age) + '歲')
print('我是' + gender +'生')
print('我在' + college + '上學')
print_student_files('小萌', '男', 18, '人民路小學')
使用程式碼預設引數
def print_student_files(name, gender='男', age='18', college='人民路小學'):
print('我叫' + name)
print('我今年' + str(age) + '歲')
print('我是' + gender +'生')
print('我在' + college + '上學')
print_student_files('小萌')
print_student_files('小樂','女',16) #更改性別,年齡
print_student_files('小明',age = 16) #只更改年齡
print_student_files('小明', age = 16, college = '光明小學') #更改年齡,學校
print_student_files('小明',gender='女', 16, college = '光明小學')
#錯誤寫法,必須引數和預設引數不可混用
預設引數注意點
- 預設引數後不可以加非預設引數
- python 3.6