溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python基礎(chǔ)函數(shù)

發(fā)布時(shí)間:2020-07-20 12:16:20 來(lái)源:網(wǎng)絡(luò) 閱讀:410 作者:小飛額 欄目:編程語(yǔ)言

函數(shù)

1 三元運(yùn)算(三目運(yùn)算)

v = #真為前面值 if 條件 else #假為后面的值

先做出來(lái)在想如何讓簡(jiǎn)化

2 函數(shù)

函數(shù)式編程:

本質(zhì):將多行代碼拿到別處,起個(gè)別名,以后通過這個(gè)名字執(zhí)行

場(chǎng)景:代碼的重復(fù)執(zhí)行

? 代碼特別多,進(jìn)行分割

2.1 函數(shù)基本格式
def 函數(shù)名():
    #函數(shù)內(nèi)容
    pass
#函數(shù)的執(zhí)行
#函數(shù)名()
#注意:函數(shù)如果不調(diào)用,內(nèi)部代碼永遠(yuǎn)不會(huì)執(zhí)行
2.2 參數(shù)
def hanshuming(aaa):形式參數(shù)
    v = (22,3,4,5)
    print(v[aaa])
    pass
hanshu(1)實(shí)際參數(shù)

實(shí)例:

info = [11,22,44,555,666,]
def gg(s):
    c = 0
    for i in s:
        c += i
    print(c)
    pass
gg([11,33,44,555,666,7777,])
2.2.1 位置傳參
def hanshuming(a1,a2):位置參數(shù)
    print(a1,a2)
    pass
hanshu(1,2)#嚴(yán)格按照位置傳參a1等于1,a2等于2,不能多傳也不能少傳
2.2.2 關(guān)鍵字傳參
def hanshuming(a1,a2)#形式參數(shù)
    print(a1,a2)
    pass
hanshu(a1=1,a2=2)關(guān)鍵字傳參,位置就可以改變
  • 關(guān)鍵字傳參可以和位置傳參,可以混合使用(位置參數(shù)要在前面,關(guān)鍵字參數(shù)要在后,他倆合起來(lái)要在等參數(shù)的個(gè)數(shù))
def hanshuming(a1,a2,a3)#形式參數(shù)
    print(a1,a2,a3)
    pass
hanshuming(1,2,a3=9)
2.2.3 默認(rèn)參數(shù)[定義]
def funt(a1,a2=9):#實(shí)例中a2=9就是默認(rèn)參數(shù)的
    pass
#a2=9表示這個(gè)參數(shù)可傳可不傳,不傳默認(rèn)就是9
2.2.4 萬(wàn)能參數(shù)(打散)
def hanshuming(*args)#*萬(wàn)能參數(shù)
    print(*args)
    pass
hanshuming(1,2,9,33,"eee")#輸出(1,2,9,33,"eee"),能夠接受n個(gè)參數(shù)

def hanshuming(*args)#*可以接受任意位置傳參并轉(zhuǎn)化為元組
    print(*args)
    pass
hanshuming((1,2,9,33,"eee"))#輸出((1,2,9,33,"eee")),能夠打散循環(huán)到*args參數(shù)
hanshuming(*(1,2,9,33,"eee"))#輸出(1,2,9,33,"eee"),能夠打散循環(huán)到*args參數(shù)
*args不支持關(guān)鍵字傳參

def hanshuming(**kwargs)#可以接受任意關(guān)鍵字傳參并轉(zhuǎn)化為字典
    print(**kwaras)
    pass
print(k=2)#輸出{"k":2}
hanshuming (**{1:2,2:3})#輸出{1:2,2:3}

#注意*args**kwargs可以組合使用
def hanshuming(*arge,**kwargs)
     print(*arge,**kwargs)
           pass
print(2,3,4,5,6,7,k=2,r=3,t=5,)
2.3 函數(shù)的返回值
def fff(age):
    #一系列代碼
    return 9 #返回值為9,不定義默認(rèn)none代表沒有返回值
val = fff("")
#函數(shù)在執(zhí)行過程中,遇到return就不執(zhí)行
#return能夠返回任意返回
#return 5,8,"asd" 返回元組

實(shí)例:

def ll():
    with open("1.txt",mode="r",encoding="utf-8") as f:
        s = []
        e = f.read().split("\n")
        for i in range(len(e)):
            r = e[i].split("|")
            s.append(r)
        return s
    pass
2.4 作用域
  • 一個(gè)py文件就是一個(gè)全局作用域,一個(gè)函數(shù)就是一個(gè)局部作用域

    a = 1
    def s1():#函數(shù)就是在全局域中的局部域
      x1 = 666
      print(x1)
      print(a)
    print(a)
    s1()
  • 作用域查找數(shù)據(jù)規(guī)則:優(yōu)先在自己作用域找,自己沒有去父級(jí)作用域找

    x = 10
    def func():#在自己域內(nèi)找不到x參數(shù)對(duì)應(yīng)值會(huì)去父級(jí)目錄尋找
      print(x)
    func()
  • 子作用域中只能去父級(jí)查找,默認(rèn)不能重新為父級(jí)變量賦值。但是找到對(duì)可變類型可以修改

  • 如果非要對(duì)全局變量重新賦值需要使用global

    name = "fmx"
    def ii():
    global name
      name = "alex"
    ii()
    print(name)#輸出alex
  • 如果要對(duì)上級(jí)變量做修改需要使用nonlocal

    name = "fmx"
    def ii():
      name = "alex"
      def jj()
        nonlocal name
        name = "hhh
      print(name)
    ii()
    print(name)#輸出hhh,fmx
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI