Python函數/動態引數/關鍵字引數

2022-12-16 21:02:02

 

1.函數

#函數語法:
#函數名規範:小謝字母開頭,不同字母下劃線隔開(字母數位下劃線)
#def 函數名():
    #函數體:希望函數做的事情

1.1.無參函數

#無參函數
def music():
    print("唱著又沒動聽的歌聲...")
#呼叫函數
music()

1.2.有參函數

#有參函數
def zgl_music(name): #形參
    print("{0}唱著又沒動聽的歌聲...".format(name))

zgl_music("諸葛亮")#傳參:實參

#有參函數-預設引數
def speak(name,yy="中文"):
    print("{0}說著{1}".format(name,yy))
speak(name="劉備")#劉備說著中文
speak("關於","阿拉伯語")#關於說著阿拉伯語

1.2.1.請把1-100的整數相加和的功能,寫成一個函數

#請把1-100的整數相加和的功能,寫成一個函數
def jia(sum1,sum2):
    #判斷sum1<sum2
    if sum1<sum2:
        sum = 0
        for item in range(sum1,sum2+1):
            sum = sum+item
        print("{0}到{1}之間數位相加的結果為:{2}".format(sum1,sum2,sum))
    else:
        print("輸入錯誤!")

jia(1,100)

1.3.return

reruen #返回函數結果
#返回a與b的和
def sum(a,b):
    return a+b #將結果返回

sum = sum(1,2)#返回的結果賦值給另一個變數
print(sum)# 3

1.3.1.無參無返

#無參無返
def sum1():
    print("這是個無參無返的函數")
#呼叫函數
sum1()

1.3.2.有參無返

#有參無返
def sum2(a,b):
    print(a+b)
#呼叫函數
sum2(2,3)

1.3.3.無參有返

#無參有返
def sum3():
    return 10
#呼叫函數
sum3()

1.3.4.有參有返

#有參有返
def sum4(a,b):
    return a+b
#呼叫函數
sum4(5,5)

1.3.5.寫一個函數,檢查傳入列表的長度,如果大於2,那麼保留前兩個長度的內容,並將新內容返回

def new_list(lists):
    if len(lists)>2:
        return lists[0:2]

a=[1,2,3,4]
print(new_list(a))

1.4.動態引數/不定長引數  *args   ☆ ☆ ☆

#動態引數/不定長引數
def sum(*args): #*args  arguments
    print(args)#('張三', '李四', '王五', '麻六')  元組
    print("張三:{0}".format(args[0]))
    print("李四:{0}".format(args[1]))
    print("王五:{0}".format(args[2]))
    print("麻六:{0}".format(args[3]))

sum("張三","李四","王五","麻六")

1.4.1.動態引數練習

#動態引數求兩個數的和
#第一種
def sum1(*a):
    return a[0]+a[1]

print(sum1(8,9))

#第二種
def sum2(*args):
    sum = 0
    for item in args:
        sum += item
    return sum

print(sum2(2,3))
1.4.1.1.補充1
#第一種
def sum2(*args,a):
    sum = 0
    for item in args:
        sum += item
    print("a = {0}".format(a))
    return sum

print(sum2(2,3,a=1))
輸出:

a = 1
5

1.4.1.2.補充2
#第二種
def sum2(a,*args):
    sum = 0
    for item in args:
        sum += item
    print("a = {0}".format(a))
    return sum

print(sum2(2,3,4,5,6))
輸出:

a = 2
18

1.5.關鍵字引數  key-value  **kwargs   ☆ ☆ ☆

#關鍵字引數  key-value  **kwargs
def kw_sum(**kwargs):# key=value
    print(kwargs)

a={"name":"張三"}
kw_sum(k=1,y=2,m=3) #{'k': 1, 'y': 2, 'm': 3}

1.6.變數作用域

#全域性變數:在模組裡面都能呼叫
#區域性變數:只能用於函數
#當全域性和區域性變數同名且同時存在的時候,函數有限呼叫區域性變數
a=1#全域性變數

def add(b):
    a=5#區域性變數
    print(a+b)
add(10)#15

1.6.1.全域性變數 global

global a#全域性變數/宣告這是一個全域性變數

def add(b):
    a=5#區域性變數
    print(a+b)
add(10)#15