日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【12】Python函数学习(中)

發(fā)布時(shí)間:2025/3/15 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【12】Python函数学习(中) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作用域、局部和全局變量

?

?

前向引用:

def test(name,age=18,*args,**kwargs):??
????print(name)
????print(age,args,kwargs)
????school("Test")???#程序執(zhí)行從上到下的,這里的school還沒(méi)定義,所以執(zhí)行報(bào)錯(cuò)。
test('alex',age=20,flag="F",water=1.5)???

def school(source):
????print(source)

運(yùn)行結(jié)果:

報(bào)錯(cuò)NameError: name 'school' is not defined

?

正確寫法:

def test(name,age=18,*args,**kwargs):
????print(name)
????print(age,args,kwargs)
????school("Test")


def school(source):
????print(source)

test('alex',age=20,flag="F",water=1.5)

運(yùn)行結(jié)果:

alex

20 () {'flag': 'F', 'water': 1.5}

Test

?

?

局部變量(只在函數(shù)里生效,這個(gè)函數(shù)就是這個(gè)變量的作用域)

def logers(name):
????print('before change:',name)
????name='ALEX'
????print('after change:',name)
????age=23


name='alex'
logers(name)
print(name)

print(age) ?#這里報(bào)錯(cuò),NameError: name 'age' is not defined,,age屬于局部變量,只能在局部生效。

運(yùn)行結(jié)果:

before change: alex

after change: ALEX

alex

?

?

全局變量(在頂層,第一級(jí)定義的變量都是全局變量)

school='Oldboy'???#頂層定義全局變量
def logers(name):
????school="Mage"??#局部變量
????print('before change:',name,school)
????name='ALEX'
????print('after change:',name)
????age=23

name='alex'
logers(name)
print(name)
#print(age)
print(school)

運(yùn)行結(jié)果:

before change: alex Mage ?#局部變量?jī)?yōu)先,雖然內(nèi)部變了,但是全局變量還是沒(méi)變。

after change: ALEX

alex

Oldboy ?#全局變量

?

改全局變量

不要這么用1

school='Oldboy'
def logers(name):
????global school??#我要把函數(shù)的全局變量改了
????school="Mage"
????print('before change:',name,school)
????name='ALEX'
????print('after change:',name)
????age=23

name='alex'
logers(name)
print(name)
#print(age)
print(school)

運(yùn)行結(jié)果:

before change: alex Mage

after change: ALEX

alex

Mage

?

總結(jié):

  • 局部變量的作用域只在子程序(函數(shù))中有效

    2、全局變量的作用域在整個(gè)程序

    3、全局變量配置在程序最頂層

    4、需要把全局變量改為局部變量那就用global 變量名(不要那么用)

    ?

    不要這么用2:(作死)

  • def student():
    ????global name??#這個(gè)作用是把 name定義為全局變量
    ????name='alex'

    student()
    print(name)

    ?

    為啥:容易混亂程序(找bug找死你)

    ?

    ?

    遞歸:(在函數(shù)內(nèi)部可以調(diào)用自己)

    1.必須要有明確的結(jié)束條件

    2.每次進(jìn)入更深一層的時(shí)候,問(wèn)題規(guī)模應(yīng)該比上一層要小

    3.遞歸效率不高,遞歸層次過(guò)多會(huì)導(dǎo)致棧溢出。(在計(jì)算機(jī)中,函數(shù)調(diào)用是通過(guò)棧(stack)這種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,每當(dāng)進(jìn)入一個(gè)函數(shù)調(diào)用,棧就會(huì)加一層棧幀,每當(dāng)函數(shù)返回,棧就會(huì)減少一層棧幀。由于棧的大小不是無(wú)限的,所以遞歸次數(shù)過(guò)多會(huì)導(dǎo)致棧溢出。)

    ?

    def calc(n):???#程序開(kāi)始,取calc實(shí)參
    ????print(n)??#打印判斷結(jié)果
    ????if int(n/2) >0 :?
    ????????return calc(int(n/2))?#遞歸
    ????print('>>>',n)
    calc(10)

    運(yùn)行結(jié)果:

    10

    5

    2

    1

    >>> 1

    ?

    ?

    函數(shù)式編程介紹:

    函數(shù)式編程是一種抽象程度很高的編程范式,純粹的函數(shù)式編程語(yǔ)言的編寫沒(méi)有變量。因此,任意一個(gè)函數(shù),只要輸入確定的,輸出就是確定的,這種純函數(shù)我們稱之為沒(méi)有副作用。而允許使用變量的程序設(shè)計(jì)語(yǔ)言,由于函數(shù)內(nèi)部的變量狀態(tài)不確定,同樣的輸入,可能得到不同的輸出,因此這種函數(shù)是有副作用的。

    函數(shù)式編程的一個(gè)特點(diǎn)就是,允許把函數(shù)本身作為參數(shù)傳入另一個(gè)函數(shù),還允許返回一個(gè)函數(shù)。

    Python對(duì)函數(shù)式編程提供部分支持,由于python允許使用變量,因此,python不是純函數(shù)式編程語(yǔ)言。

    想學(xué)函數(shù)式編程可以學(xué)lisphashshellerlang

    ?

    ?

    高階函數(shù):

    變量可以指向函數(shù),函數(shù)的參數(shù)能接收變量,那么一個(gè)函數(shù)就可以接收另一個(gè)函數(shù)作為參數(shù),這種函數(shù)就叫做高階函數(shù)。

    def add(a,b,f):
    ????return f(a)+f(b)

    res=add(3,-6,abs) ?#abs 絕對(duì)值的意思
    print(res)

    結(jié)果:

    9


    轉(zhuǎn)載于:https://blog.51cto.com/000011211684/1983175

    總結(jié)

    以上是生活随笔為你收集整理的【12】Python函数学习(中)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 91插插视频 | 欧美bbbbb性bbbbb视频 | 91精品国产视频 | 天堂av电影在线观看 | 97se综合 | 波多野结衣中文字幕在线播放 | 黄色午夜影院 | 在线免费一区 | 波多野结衣欧美 | 偷偷操不一样 | 男女叼嘿视频 | 亚洲女人的天堂 | 免费看操片 | 久久伊人婷婷 | 欧美高清性xxxx | 欧美1314 | 亚洲成人自拍视频 | 欧美性xxxx | 日日燥夜夜燥 | 久久久久久av无码免费网站下载 | 七七色影院 | 国产精品一区二区久久国产 | 日韩久 | 亚洲av永久中文无码精品综合 | 亚洲人 女学生 打屁股 得到 | 五月情婷婷 | 成人在线观看a | 希岛婚前侵犯中文字幕在线 | 欧美老熟妇乱xxxxx | 国产精品成人久久久 | 日日噜噜噜 | 久久国产精品99久久人人澡 | 日本熟妇一区二区 | 九九色网站 | 五月激情综合网 | 欧美专区在线播放 | 男人天堂亚洲 | 强公把我次次高潮hd | 国产综合久久久 | 欧美久久一区二区三区 | 国产不卡av在线播放 | 久久99网站 | 色天天干| 黄色的网站在线 | 黄色1级大片 | 国产伦精品一区二区三区视频免费 | 在线成人欧美 | 一本一道无码中文字幕精品热 | aa黄色大片| 亚洲精品国产美女 | 俄罗斯黄色大片 | 亚洲色图.com | 97自拍视频 | 国产精品成人国产乱一区 | 日p免费视频 | 免费福利视频在线观看 | 天天综合中文字幕 | 免费av日韩 | 亚洲三级在线播放 | 成人高潮片免费网站 | 狠狠狠 | 色吊丝av中文字幕 | www国产在线观看 | 色偷偷免费视频 | 精品视频一区二区三区四区五区 | 天天av天天操 | 亚洲xxxx18| 欧美在线视频观看 | 40一50一60老女人毛片 | 亚洲无码久久久久 | 亚洲av色香蕉一区二区三区 | av在线免费网址 | 中文字幕av一区二区三区人妻少妇 | 精品人妻一区二区三区香蕉 | 少妇特黄一区二区三区 | 精品成人久久久 | 成人免费毛片东京热 | 亚洲av毛片成人精品 | 午夜精品福利电影 | 天天干天天操天天摸 | 91亚洲精品一区二区乱码 | 国产日本欧美在线观看 | 日韩精品在线免费看 | 色亚洲视频 | 国产伦精品一区二区三区高清版禁 | 男女一进一出视频 | 亚洲成人中文字幕 | 夜夜精品视频 | 一级黄视频 | 午夜宅男网 | 国产又黄又粗又爽 | 亚洲视频在线观看 | 日本福利一区二区三区 | 最新国产精品自拍 | 国产成人精品一区二区在线观看 | 亚洲美女自拍偷拍 | 已满18岁免费观看电视连续剧 | 欧美午夜精品久久久久久人妖 | av国产网站 |