Python之函式5.1

影清风發表於2024-11-11

函式:

一、什麼是函式

定義:函式是組織好,可重複使用,用來實現單一,或關聯功能的程式碼段

二、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()

相關文章