函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。
函式能提高應用的模組性,和**的重複利用率。你已經知道python提供了許多內建函式,比如print()。但你也可以自己建立函式,這被叫做使用者自定義函式
內建函式 說明
語法:
python 定義函式使用 def 關鍵字,一般格式如下:
def 函式名(引數列表):
函式體預設情況下,引數值和引數名稱是按函式宣告中定義的順序匹配起來的。
規則你可以定義乙個由自己想要功能的函式,以下是簡單的規則:
2.任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。
3.函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。
4.函式內容以冒號起始,並且縮排。
5.return [表示式] 結束函式,選擇性地返回乙個值給呼叫方。不帶表示式的return相當於返回 none。
def showinfo():
"""定義列印個人資訊函式
:return:
"""print("*****==個人資訊*****")
print("名字:admin")
print("密碼:123")
#呼叫showinfo()
1 有參有返回值
2 有參無返回值
3 無參有返回值
4 無參無返回值
#**********==無參無返回值**********==
def showinfo():
"""定義列印個人資訊函式
:return:
"""print("*****==個人資訊*****")
print("名字:admin")
print("密碼:123")
#**********==無參有返回值**********==
#return 結束函式
# 1如果函式體中沒有if while 控制流,那麼在return 新增語句是無效
# 2 函式的返回型別保持一致,可以不一樣
def get_name():
print("getname1")
print("getname2")
number=1
if number==1:
return 1
elif number==2:
return "2"
#print(get_name())
#**********==有參無返回值**********==
# name 形參
def showinfo1(name,age):
print("有參無返回值")
print(name,age)
#n = "a" # 實參
#showinfo1(n,1)
#**********==有參有返回值**********==
def getnumber(number1,number2):
return number1+number2
print(getnumber("1","2"))
#全域性變數
#在函式外宣告的變數,叫全域性變數
#作用範圍多個函式
number=2 #全域性變數
# 區域性變數 在函式中宣告變數叫區域性變數
#作用範圍 當前函式
# 當函式執行完,則釋放記憶體
# 如果說全域性變數和區域性變數名字一樣,在函式中優先順序高的是區域性變數
def getnumber1():
number=1 #區域性變數
print(number)
def getnumber2():
print(number)
#getnumber2()
# getnumber1()
#當內部作用域想修改外部作用域的變數時,就要用到global關鍵字了
count = 1
def change():
global count # 說明count是全域性變數
count = 3
print(count)
change()
print(count)
#引數傳遞
# 不可變的物件做引數是,傳值 (strings, tuples, 和 numbers 是不可更改的物件)
def change(number):
number=number+1
print("函式內",number)
number= 1
#呼叫函式
#change(number)
#print("函式外:",number)
def changelist(names):
print("函式內",names)
names=["tom","jack"]
changelist(names)
print("函式外:",names)
必備引數
· 關鍵字引數
· 預設引數
· 可變引數
#引數的型別
# ***************=必備引數***************
#必備引數須以正確的順序傳入函式。呼叫時的數量必須和宣告時的一樣。
def showinfo(name,age):
print(name,age)
#showinfo("admin",22)
# **********==關鍵字引數***************====
#使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致
def showinfo2(name,age):
print(name,age)
#showinfo2(age=22,name="admin")
def showinfo3(name,age,**other):
print(name,age,other)
#showinfo3("admin","22")
#showinfo3(name="admin",age=22,address="北京市")
mes=
#showinfo3(name="admin",age=22,**mes)
# ***************=預設引數**********==
#呼叫函式時,預設引數的值如果沒有傳入,則被認為是預設值
def showinfo4(name,age=0):
print(name,age)
#showinfo4("admin")
# *****=可變引數*****====
def showinfo5(name,*kws):
print(name,kws)
number=[12,322,1]
showinfo5("admin",*number)
#***************== 字典做關鍵字和普通的引數的區別***************=
#字典做普通引數 傳位址
def changedict(student):
student["name"]="tom"
print("函式內",student)
# student =
# changedict(student)
# print("函式外:",student)
#字典做關鍵字 傳值
def changedict(**student):
student["name"]="tom"
print("函式內",student)
student =
changedict(**student)
print("函式外:",student)
#匿名函式
#lambda只是乙個表示式,函式體比def簡單很多。
#而不是乙個**塊。僅僅能在lambda表示式中封裝有限的邏輯進去。
# 預設有返回值
import random
#語法:lambda [arg1 [,arg2,.....argn]]:expressio
result = lambda number1 ,number2 ,number3: (number2-number1)*number3
#print(result(2,3))
# def getnumber(number):
# if number>5:
# return true
# **********==== 實際應用的場景***************==
numbers=[random.randint(1,20) for number in range(10)]
print(numbers)
#numbers2 = filter(getnumber,numbers)
numbers2 = filter(lambda number :number>5,numbers)
print(list(numbers2))
自學Python之函式
python的函式比其他語言要簡潔一點,不需要指標,也不要引數型別,形式引數只要隨便一寫就行了。乙個小例子實現兩個數相加 def fun a,b c a b print c fun 2,3 就這麼簡單就實現啦!輸出結果為5 要注意的是這裡傳遞的引數必須數量一致,意思就是說函式要求兩個引數,你不能傳遞...
Python自學筆記004 函式
def function a,b print this is a function.c a b print a b c 這裡執行之後需要我們呼叫這個函式 function 3,4 這裡面表示傳入函式的引數值 this is a function.a b 7如果在呼叫時忘記了引數的位置,只記得引數的名...
Python 自學筆記7 函式
1.使用函式的目的 模組化,便於處理 2.函式的定義 def function 2.函式文件 def myfirstfunction name 函式文件在函式定義的最開頭部分,此部分就是函式文件,用不記名字串表示 print i love fishc.com 函式的文件字串可以按如下方式訪問 myf...