Python基礎 6 函式(一)
一 函式介紹
如果在開發程式時,需要多次呼叫某一部分程式碼,但是為了提高程式碼的編寫效率以及程式碼的重用,所以把具有獨立功能的程式碼組織為一個小模組,這就是函式
二函式的定義及呼叫
你可以定義一個由自己想要功能的函式,以下是簡單的規則:
函式程式碼塊以 def 關鍵詞開頭,後接函式識別符號名稱和圓括號 ()。
任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。
函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。
函式內容以冒號起始,並且縮排。
return [表示式] 結束函式,不帶表示式的return相當於返回 None。
'''
def 函式名稱
函式體
'''
注意事項
函式的命名要遵循識別符號的命名規則,使用下劃線命名法
函式體都是靠強縮排來表示的
函式只有在呼叫的時候才會執行,之建立不呼叫是不會執行的
呼叫格式
def 函式名
#建立一個say_hello 函式 def say_hello(): print('hello python') print('hello yjs') print('hello java') #呼叫函式 say_hello() print('程式結束了') 結果: hello python hello yjs hello java 程式結束了
注意事項
1函式只有先建立,後呼叫
2一般情況下,不要將呼叫函式放到函式體裡面
3函式可以多次呼叫
函式的註釋
在函式體的第一行使用多行註釋,對函式的功能進行解釋說明
呼叫函式的時候,可以使用ctrl+q 可以檢視函式的的解釋說明,從而瞭解函式的功能
def say_hello(): """ 這是一個打招呼的方法 你好世界,你好雲端計算 你好java """ print('hello python') print('hello yjs') print('hello java') say_hello()
3 帶引數的函式
需求 定義一個求和引數
def sum_num():
num1 = 10
num2 = 20
num3 = num1 + num2
print(num3)
sum_num()
這個函式只能求出10+20的值,擴充套件性不高
函式的引數
格式如下
def 函式名稱(引數1,引數2,.....)
...函式體...
說明:
1注意小括號裡面的變數名就是函式的引數,多個引數使用逗號“,”隔開
2函式呼叫幾個引數,呼叫函式的時候,就必須傳遞對應引數的個數
3 當以的引數,叫他形參--->形式引數
呼叫函式的時候的引數叫做實參 --->實際引數
def sum_num(aa,bb): #aa bb 叫做形參
num1 = aa
num2 = bb
num3 = num1 +num2
print(num3)
# 呼叫函式
sum_num(5,6) # 5 6 叫做實參
sum_num() 報錯因為沒有傳遞實參
函式引數的型別
不可變型別引數:整數、字串、元組。
fun(a) 內部修改a的值,只是修改另一個複製的物件,不會影響a本身
可變型別:列表,字典。
如fun(la),則是將la真正的傳過去,修改後的fun外部的la也會受到影響
不可變資料型別
a = 10000
print('a標量的id值--->',id(a))
def num(b):
print(b) # a和b的地址相同,因此值也是相同的
b = 200
print('修改後的b的id值--->', id(b))
print(b)
num(a)
'''
a標量的id值---> 7459696
10000
修改後的b的id值---> 490814384
200
'''
可變資料型別
print('outter_list',outter_list,id(outter_list))
def func(inter_list):
print('inter_list',inter_list,id(inter_list))
inter_list.append(4)
print(inter_list)
func(outter_list) #傳遞的是一個地址,所以才會變
print(outter_list)
"""
st [1, 2, 3] 12221320
inter_list [1, 2, 3] 12221320
[1, 2, 3, 4]
[1, 2, 3, 4]
"""
函式的返回值
格式
def 函式名(引數1,引數2,..........)
return 值
注意 1 在函式體的最後一個使用,關鍵字return 要返回的值
2 如果一個函式沒有返回值,預設返回None
3 return有兩個作用,一個是返回值,另一個是結束函式,可以結束整個方法
def sum_num(aa,bb):
num3 = aa+bb
print(id(num3))
ret = sum_num(1,2) #定義一個變數ret,來接受函式的返回值,賦值給變數
print(ret,id(ret))
拿到返回值後可以進行邏輯操作
例如:
if ret < 10:
pass
else:
pass
def func(c):
print('func...')
a = 10
b = c
if b < a:
return #可以結束整個方法
print('zzz')
print('xxxx')
func(11)
print('程式結束了')
結果:
func...
zzz
xxxx
程式結束了
返回None
返回None
def func():
print('func....')
ret = func()
print(ret)
結果 func....
None
返回多個值
格式
def fun():
a = '10'
b = '20'
return a,b
ret = fun()
print(ret) #多個值被組織成一個元組返回
因為可以用多個變數來接受元組中的內容 因此
num1,num2 = fun()
print(num1,num2,type(num1),type(num2))
結果:
('10', '20')
10 20 <class 'str'> <class 'str'>
注意:
1如果函式不寫返回值,預設返回值None
2 return關鍵字有兩個作用,一個是返回內容,另一個是結束此方法
3 return關鍵字後面不允許在寫程式碼