函式:
一、什麼是函式
定義:函式是組織好,可重複使用,用來實現單一,或關聯功能的程式碼段
二、pycharm中的表結構
專案 ,包(init)或目錄,py檔案,py檔案包含多個函式或類等
三、函式的有哪些優點?
1、降低程式碼冗餘
2、增加程式碼的複用性,提高開發效率
3、提高程式的擴充性
4、封裝:就是把程式碼片段放在函式當中
================================
二、函式的使用
1、自定義函式
2、內建函式
(1)、自定義函式
自己封裝的函式
(2)、如何定義一個函式
def
格式:
def 函式名(引數): #定義函式
函式體
函式名( ) #呼叫函式
案例:
3、呼叫函式的方法:
(1)第一種:直接呼叫 函式名()
(2)第二種:mian方法
if __ name__ == ' __ main__':
主函式呼叫
主函式的解釋:
解釋:
if __ name__ == '__ main__': 是函式的入口,也稱為主函式
__ name __ 是當前模組名,當模組被直接執行時模組名為 __ main __ ,這句話的
意思就是,當模組被直接執行時,以下程式碼塊將被執行,當模組是被匯入時,
程式碼塊不被執行
def hs():
print("上海多測師")
print("杭州多測師")
def hs1():
print("深圳多測師")
print("廣州多測師")
if __name__ == '__main__':
hs1() 結果:深圳多測師
廣州多測師
(3)第三種:呼叫方法:跨模組呼叫 a 模組 ,b模組
a檔案:
b檔案:
呼叫上一個檔案中的函式:
先匯入模組中函式:
from 專案名.包名.模組名 import (匯入) * (*所有的函式)
=================================================
函式中的引數:
1、函式體中無函式
def hz():
print("dcs")
print("hz")
hz()
2、函式中有單個引數
def hz(a):
print(a)
print(a+2)
hz(12)
3、函式中有多個引數
def hz(a,b,c):
print(a)
print(a+b)
print(a+b+c)
hz(1,2,3)
4、函式定義時帶上預設引數
c=18 表示預設引數
def hz(a,b,c=18):
print(a)
print(a,b)
print(a,b,c)
hz(1,2)
5、可變長元組
可變長引數中可變長元組“ * ” ;一個 * 號
案例1:單獨可變長元組使用
def hz(*a):
print(a)
hz(1,2,3,4,5)
案例2:可變長元組使用和普通引數在一起,只能可變長元組在後,否則報錯
def hz(b,*a):
print(a)
print(b)
hz(1,2,3,4,5,8)
6、可變長字典
可變長欄位用兩個 ** 表示
案例1:單獨傳字典:
(1)def zd(**d):
print(d)
zd(name="zt",age="18")
(2)
def zd(**d):
print(d)
d={"a":1,"b":2}
zd(**d)
案例2:當可變字典和可變元組在一起,可變元組在前,可變字典在後
def zd(*y,**d,):
print(y)
print(d)
d={"a":1,"b":2}
zd(111,2,**d)
案例3:普通引數,可變長元組,可變長字典
def zd(p,*y,**d,):
print(p)
print(y)
print(d)
d={"a":1,"b":2}
zd("a",111,2,**d)
======================================
變數
函式彙總的變數和作用域
(1)全域性變數:在函式內外都可以引用
(2)區域性變數:在函式體中定義的變數被稱為區域性變數
(3)透過區域性變數改成成全域性變數
1、認識區域性變數和全域性變數
a=10 #全域性變數
def s():
a=100 #區域性變數
print(a)
def c():
print(a)
if __name__ == '__main__':
s()
c()
備註:區域性變數和全域性變數在一起,區域性變數優先順序高於全域性變數
2、將區域性變數改為全域性變數 global
a=10 #全域性變數
def s():
global a #透過global 將區域性變數改為全域性變數
a=100 #區域性變數
print(a)
def c():
print(a)
if __name__ == '__main__':
s()
c()
return 函式
返回值
(1)
Python中,用 def 語句建立函式時,可以用 return 語句指定應該返回的值,該返回值可以是任意型別。需要注意的是,return 語句在同一函式中可以出現多次,但只要有一個得到執行,就會直接結束函式的執行。函式中,使用 return 語句的語法格式如下:return [返回值]
其中,返回值引數可以指定,也可以省略不寫(將返回空值 None)
(2)
1、在程式開發中,有時候會希望一個函式執行程式結束後,告訴呼叫者一個結果,以便呼叫者針對具體的結果做後續的處理。
2、返回值是函式完成工作後,最後給到呼叫者的一個結果。
3、在函式中使用return關鍵字可以返回結果。
4、呼叫函式的一方可以使用變數來接收函式的返回結果。
注意點:return後面的語句不執行
def s():
# global a
a=100 #區域性變數
return a
def c():
k=s()
k*=2
print(k)
if __name__ == '__main__':
s()
c()
作業:
需求:登入銀行系統並顯示餘額,有兩個功能第一個是登入,第二個是登入後顯示餘額,先登入然後根據登入是否成功然後是否顯示餘額。
分析思路:如果想查詢到餘額,前提必須登入,所以現在我們用兩個函式來處理,第一個函式實現登入,第二個函式實現餘額查詢,呼叫第一個函式得到的結果給第二個函式,然後第二個函式根據結果進行程式碼處理。
方法一:
def login (a,b):
if a=="jz" and b=="123":
print("登入成功")
return 0
else:
print("失敗")
return 1
def selec (a):
if a==1:
print("尚未登入")
elif a==0:
print("您的餘額為0")
if __name__ == '__main__':
b=login("jz","123")
selec(b)
方法二:
def dl():
name=input("請輸入使用者名稱:")
if name=="zt":
print("登入成功")
return "登入成功"
else:
print("登入失敗")
return "登入失敗"
def select():
c=dl()
if c=="登入成功":
print("餘額:一個億")
else:
print("你就是一個乞丐")
if __name__ == '__main__':
select()
方法三:
return 1或0 ;return Ture 或falsh ,
return "登入成功"
return "登入成功"
def dl():
name=input("請輸入使用者名稱:")
if name=="zt":
print("登入成功")
return 1
else:
print("登入失敗")
return 0
def select():
c=dl()
if c==1:
print("餘額:一個億")
else:
print("你就是一個乞丐")
if __name__ == '__main__':
select()