最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python函數(shù)的作用域及內(nèi)置函數(shù)詳解

 更新時(shí)間:2021年09月13日 16:00:21   作者:曬不黑的黑煤球  
這篇文章主要介紹了python函數(shù)的作用域及內(nèi)置函數(shù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1.函數(shù)的作用域

-- 內(nèi)置

-- 全局,頂格寫(xiě)

-- 局部,函數(shù)內(nèi)部

a = 34 #全局變量
def run():
    b = 44 #局部變量
print(a)
print(b) #不可以直接調(diào)用局部變量,報(bào)錯(cuò)

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

c = 12
def run(a):
    print(a)
    b = 33
run(5)
# 一個(gè)全局變量c
# 兩個(gè)局部變量a,b
# 函數(shù)的參數(shù)也是局部變量

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

5

局部 VS 全局

-- 局部空間(函數(shù)內(nèi))獲取全局變量,Yes

-- 全部空間(函數(shù)外)獲取局部變量,No,但可以間接通過(guò)返回值 return 獲取

-- 全局空間(函數(shù)外)修改局部變量,No

-- 局部空間(函數(shù)內(nèi))修改全部變量,Yes,但必須要聲明,global 全局變量名

siwei = 99
def run():
    print('函數(shù)執(zhí)行')
    print(siwei)# 調(diào)用全局變量,可以正常使用
run()

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

函數(shù)執(zhí)行
99

siwei = 99
def run():
    print('函數(shù)執(zhí)行')
    a = 88
    print(siwei)# 調(diào)用全局變量,可以正常使用
    return a #用返回值,返給全局變量result
result = run()
print(result)

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

函數(shù)執(zhí)行
99
88

siwei = 99
def run():
    print('函數(shù)執(zhí)行')
    a = 88
    print(siwei)# 調(diào)用全局變量,可以正常使用
    return a #用返回值,返給全局變量result
result = run()
print(result)

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

100

2.函數(shù)的調(diào)用詳解

注意:

-- 函數(shù)必須先定義再調(diào)用

-- 不同函數(shù)定義的先后順序無(wú)關(guān)

-- 函數(shù)體內(nèi)可以調(diào)用函數(shù)自己本身,但一般不這樣使用,容易出錯(cuò)

# 還沒(méi)定義函數(shù)就直接調(diào)用,所以會(huì)報(bào)錯(cuò)
offer('lili',20,'辣條')
def eat(name,food):
    print('{} 最喜歡吃 {}'.format(name,food))
def offer(name,money,food):
    print('恭喜 {} 拿到 {}k offer'.format(name,money))
    eat(name,food)

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

# 一個(gè)函數(shù)當(dāng)中是可以去調(diào)用另外一個(gè)函數(shù)的
def eat(name,food):
    print('{} 最喜歡吃 {}'.format(name,food))
def offer(name,money,food):
    print('恭喜 {} 拿到 {}k offer'.format(name,money))
    eat(name,food)
offer('lili',20,'辣條')

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

恭喜 lili 拿到 20k offer
lili 最喜歡吃 辣條

# 兩個(gè)函數(shù)位置互換是不影響結(jié)果的
def offer(name,money,food):
    print('恭喜 {} 拿到 {}k offer'.format(name,money))
    eat(name,food)
def eat(name,food):
    print('{} 最喜歡吃 {}'.format(name,food))
offer('lili',20,'辣條')

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

恭喜 lili 拿到 20k offer
lili 最喜歡吃 辣條

可以通過(guò)Debug模式來(lái)詳細(xì)查看一下代碼的運(yùn)行過(guò)程

offer 和 eat 函數(shù)第一行被執(zhí)行,函數(shù)體里的代碼不會(huì)被執(zhí)行

當(dāng)offer 被調(diào)用時(shí),代碼自動(dòng)找offer函數(shù),然后進(jìn)入函數(shù)體內(nèi),然后執(zhí)行eat 函數(shù)

代碼自動(dòng)找eat 函數(shù),然后進(jìn)入函數(shù)體

# 函數(shù)自己可以調(diào)用自己本身,但會(huì)報(bào)遞歸錯(cuò)誤
def run():
    print('正在運(yùn)行!')
    run()
run()

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

RecursionError: maximum recursion depth exceeded while calling a Python object

遞歸錯(cuò)誤:調(diào)用Python對(duì)象時(shí)超過(guò)的最大遞歸深度

3.內(nèi)置函數(shù)

enumrate():獲取列表的索引值與元素值

list1 = ['a','b',1,2]
for i in enumerate(list1):
    # 輸入結(jié)果是數(shù)據(jù)類型是元組
    print(i)
for index,value in enumerate(list1):
    # 輸出結(jié)果:索引值是int類型,元素值是什么數(shù)據(jù)類型就是什么類型
    print(index,value)

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

(0, 'a') ====> tuple
(1, 'b')
(2, 1)
(3, 2)
0 a ====> 0 int a str
1 b
2 1====> 2 int 1 int
3 2

eval():去掉字符串兩邊的引號(hào)

string = '1 + 1'
string1 = '7.8 + 4.5'
string2 = '(1,2,3)'
print(string,type(string))
# 去掉引號(hào),相當(dāng)于變成了算數(shù)運(yùn)算
print(eval(string),type(eval(string)))
print(eval(string1),type(eval(string1)))
# 去掉引號(hào),相當(dāng)于變成了元組
print(eval(string2),type(eval(string2)))

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

1 + 1 <class 'str'>
2 <class 'int'>
12.3 <class 'float'>
(1, 2, 3) <class 'tuple'>

zip():用于將可迭代的對(duì)象作為參數(shù),按索引號(hào)打包成一組一組

title = ['id','name','url']
row = ['1','lili','http://www.baidu1.com']
# zip迭代每一個(gè)元素,按索引號(hào)打包成一組,然后通過(guò)dict轉(zhuǎn)換成字典
result = dict(zip(title,row))
print(result)
# 列表,元組都可以轉(zhuǎn)換成字典
title1 = ('id','name','url')
row1 = ['2','lili','http://www.baidu2.com']
result1 =dict(zip(title1,row1))
print(result1)

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

{'id': '1', 'name': 'lili', 'url': 'http://www.baidu1.com'}
{'id': '2', 'name': 'lili', 'url': 'http://www.baidu2.com'}

a = [1,2,3]
b = ('a','b','c')
c = 'qaz'
result = dict(zip(a,c))
result1 = dict(zip(a,b))
result2 = dict(zip(b,c))
print(result)
print(result1)
print(result2)

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

{1: 'q', 2: 'a', 3: 'z'}
{1: 'a', 2: 'b', 3: 'c'}
{'a': 'q', 'b': 'a', 'c': 'z'}

sum(iterable[, start]):求和,求和的類型必須是數(shù)字

terable – 可迭代對(duì)象,如:列表(list)、元組(tuple)、集合(set)、字典(dict)

start – 指定相加的參數(shù),如果沒(méi)有設(shè)置這個(gè)值,默認(rèn)為0

所以 sum(1,2,3) 是錯(cuò)誤的,sum(必須是可迭代對(duì)象)

list1 = [2,3,4]
tuple1 = (1,1,1)
dict1= {60.5:'chinese',70:'math'}
set1 = {1,2,3}
print(sum(list1,1))#列表中2,3,4 加上start的值1
print(sum(tuple1))#元組中1,1,1加上默認(rèn)start的值0
print(sum(dict1))#字典中相加的是key的值,key若不是數(shù)字會(huì)報(bào)錯(cuò)
print(sum(set1))#集合里必須是一層,不能嵌套其他層

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

10
3
130.5
6

max():求最大值

min() :求最小值

list1 = [1,2,3]
print(max(list1))
print(max(3,4,5))
print(min(list1))
print(min(4,5,6))

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

3
5
1
4

id():查看內(nèi)存地址

a = 10
b = 10
# 不可變類型(字符串,元組等),內(nèi)存地址一樣
print(id(a))
print(id(b))
# 可變類型(列表,字典),內(nèi)存地址不一樣
c = [1,2,3]
d = [1,2,3]
print(id(c))
print(id(d))

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

140716744443840
140716744443840
1975790732416
1975791019584

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Python利用雪花算法實(shí)現(xiàn)生成唯一ID

    Python利用雪花算法實(shí)現(xiàn)生成唯一ID

    雪花算法是在一個(gè)項(xiàng)目體系中生成全局唯一ID標(biāo)識(shí)的一種方式,偶然間看到了Python使用雪花算法不盡感嘆真的是太便捷了。本文就來(lái)聊聊這具體的實(shí)現(xiàn)方法,感興趣的可以了解一下
    2022-11-11
  • Python使用Selenium爬取淘寶異步加載的數(shù)據(jù)方法

    Python使用Selenium爬取淘寶異步加載的數(shù)據(jù)方法

    今天小編就為大家分享一篇Python使用Selenium爬取淘寶異步加載的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Pycharm安裝Qt Design快捷工具的詳細(xì)教程

    Pycharm安裝Qt Design快捷工具的詳細(xì)教程

    這篇文章主要介紹了Pycharm安裝Qt Design快捷工具,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python3爬蟲(chóng)學(xué)習(xí)之MySQL數(shù)據(jù)庫(kù)存儲(chǔ)爬取的信息詳解

    Python3爬蟲(chóng)學(xué)習(xí)之MySQL數(shù)據(jù)庫(kù)存儲(chǔ)爬取的信息詳解

    這篇文章主要介紹了Python3爬蟲(chóng)學(xué)習(xí)之MySQL數(shù)據(jù)庫(kù)存儲(chǔ)爬取的信息,涉及Python3針對(duì)mysql數(shù)據(jù)庫(kù)的連接、信息存儲(chǔ)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • python一行代碼就能實(shí)現(xiàn)數(shù)據(jù)分析的pandas-profiling庫(kù)

    python一行代碼就能實(shí)現(xiàn)數(shù)據(jù)分析的pandas-profiling庫(kù)

    這篇文章主要為大家介紹了python一行代碼就能實(shí)現(xiàn)數(shù)據(jù)分析的pandas-profiling庫(kù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python中and和or如何使用

    Python中and和or如何使用

    在本篇文章里小編給各位分享的是一篇關(guān)于Python中and、or用法實(shí)例文章,有興趣的朋友們可以參考學(xué)習(xí)下。
    2020-05-05
  • Pandas索引排序 df.sort_index()的實(shí)現(xiàn)

    Pandas索引排序 df.sort_index()的實(shí)現(xiàn)

    本文主要介紹了Pandas索引排序 df.sort_index()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python format 格式化輸出方法

    python format 格式化輸出方法

    今天小編就為大家分享一篇python format 格式化輸出方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 在Python的Django框架中使用通用視圖的方法

    在Python的Django框架中使用通用視圖的方法

    這篇文章主要介紹了在Python的Django框架中使用通用視圖的方法,同時(shí)提到了相關(guān)的安全問(wèn)題,需要的朋友可以參考下
    2015-07-07
  • 基于Python fminunc 的替代方法

    基于Python fminunc 的替代方法

    今天小編就為大家分享一篇基于Python fminunc 的替代方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02

最新評(píng)論

沙洋县| 武威市| 长兴县| 商城县| 云林县| 灵石县| 洛川县| 延长县| 班戈县| 自治县| 无锡市| 吉隆县| 乐陵市| 中宁县| 中山市| 嘉善县| 东乡| 钟山县| 抚顺市| 惠州市| 磐安县| 临沧市| 柘荣县| 石河子市| 兰考县| 中超| 竹溪县| 夹江县| 葫芦岛市| 龙口市| 内江市| 嫩江县| 濮阳县| 嘉定区| 通许县| 九寨沟县| 农安县| 景德镇市| 胶州市| 横峰县| 孝昌县|