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

Python中一些不為人知的基礎(chǔ)技巧總結(jié)

 更新時(shí)間:2018年05月19日 12:01:29   作者:大師兄  
這篇文章主要給大家總結(jié)介紹了Python中一些不為人知的基礎(chǔ)技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文主要給大家總結(jié)介紹了關(guān)于Python的一些基礎(chǔ)技巧,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

1.startswith()和endswith()參數(shù)可以是元組

當(dāng)檢測(cè)字符串開頭或結(jié)尾時(shí),如果有多個(gè)檢測(cè)值,可以用元組作為startswith()和endswith()參數(shù):

# bad
if image.endswith('.jpg') or image.endswith('.png') or image.endswith('.gif'):
 pass
# good
if image.endswith(('.jpg', '.png', '.gif')):
 pass
# bad
if url.startswith('http:') or url.startswith('https:') or url.startswith('ftp:'):
 pass
# good
if url.startswith(('http:', 'https:', 'ftp:')):
 pass

2.enumerate()設(shè)置start參數(shù)做為索引起始值

當(dāng)用enumerate()迭代同時(shí)要得到索引時(shí),可以設(shè)置start參數(shù)作為索引起始值:

# bad
for index, v in enumerate(data):
 print(index+1, v)
# good
for index, v in enumerate(data, start=1):
 print(index, v)

3.對(duì)切片命名

當(dāng)代碼中到處都是硬編碼的切片索引時(shí),我們的代碼將變得無(wú)法閱讀??梢詫?duì)切片命名解決此問(wèn)題:

record = '....................100.................513.25......'
# bad
cost = int(record[20:23]) * float(record[40:46])
# good
SHARES = slice(20, 23)
PRICE = slice(40, 46)
cost = int(record[SHARES]) * float(record[PRICE])

作為一條基本準(zhǔn)則,代碼中如果有很多硬編碼的索引值,將導(dǎo)致可讀性合可維護(hù)性都不佳。一般來(lái)說(shuō),內(nèi)置的slice()函數(shù)會(huì)創(chuàng)建一個(gè)切片對(duì)象,可以用在任何允許進(jìn)行切片操作的地方。例如:

>>> items = [0, 1, 2, 3, 4, 5, 6]
>>> a = slice(2, 4)
>>> items[2:4]
[2, 3]
>>> items[a]
[2, 3]
>>> items[a] = [-2, -3]
>>> items
[0, 1, -2, -3, 4, 5, 6]
>>> del items[a]
>>> items
[0, 1, 4, 5, 6]
>>>

4.上下文管理器可以同時(shí)管理多個(gè)資源

假設(shè)你要讀取一個(gè)文件的內(nèi)容,經(jīng)過(guò)處理以后,寫入到另一個(gè)文件。你能寫出pythonic的代碼,所以你使用了上下文管理器,滿意地的寫出了下面這樣的代碼:

 with open('input.txt', 'r') as source:
 with open('output.txt', 'w') as target:
  target.write(source.read())

你已經(jīng)做的很好了,但是上下文管理器可以同時(shí)管理多個(gè)資源,上面這段代碼還可以這樣寫:

 with open('input.txt', 'r') as source, open('output.txt', 'w') as target:
  target.write(source.read())

5.else子句

Python中的else子句不僅能在if語(yǔ)句中使用,還能在for、while、和try語(yǔ)句中使用。

在for循環(huán)或是while循環(huán)正常運(yùn)行完畢時(shí)(而不是通過(guò)break語(yǔ)句或是return語(yǔ)句或是異常退出循環(huán)),才會(huì)運(yùn)行else塊。

舉個(gè)例子:

>>> for i in range(3):
...  print(i)
... else:
...  print('Iterated over everything')
... 
0
1
2
Iterated over everything
>>>

如上,for循環(huán)正常結(jié)束,所以運(yùn)行了后面的else塊。

>>> for i in range(3):
...  if i == 2:
...   break
...  print(i)
... else:
...  print('Iterated over everything')
... 
0
1
>>>

由此可以看出,for循環(huán)如果沒(méi)有正常運(yùn)行完畢(如上面是break結(jié)束循環(huán)的),是不會(huì)運(yùn)行后面的else塊。

僅當(dāng)try塊中沒(méi)有異常拋出時(shí)才運(yùn)行else塊。一開始,你可能覺(jué)得沒(méi)必要在try/except塊中使用else子句。畢竟,在下述代碼片段中,只有dangerous_call()不拋出異常,after_call()才會(huì)執(zhí)行,對(duì)吧?

try:
 dangerous_call()
 after_call()
except OSError:
 log('OSError...')

然而,after_call()不應(yīng)該放在try塊中。為了清晰明確,try塊中應(yīng)該只包括拋出預(yù)期異常的語(yǔ)句。因此,向下面這樣寫更好:

try:
 dangerous_call()
except OSError:
 log('OSError...')
else:
 after_call()

現(xiàn)在很明確,try塊防守的是dangerous_call()可能出現(xiàn)的錯(cuò)誤,而不是after_call()。而且很明顯,只有try塊不拋出異常,才會(huì)執(zhí)行after_call()。但要注意一點(diǎn),else子句拋出的異常不會(huì)由前面的except子句處理,也就是說(shuō)此時(shí)after_call()如果拋出異常,將不會(huì)被捕獲到。

還有更多的python技巧,大家可以參考這篇文章:http://m.fzitv.net/article/137695.htm

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Python文件和異常處理小結(jié)

    Python文件和異常處理小結(jié)

    本章詳細(xì)介紹了Python中的文件操作和異常處理,包括文件的讀取和寫入、異常的捕獲和處理,以及JSON數(shù)據(jù)的存儲(chǔ)和重構(gòu)代碼的最佳實(shí)踐,通過(guò)示例和解釋,幫助讀者掌握這些關(guān)鍵技能,感興趣的朋友一起看看吧
    2025-03-03
  • Python入門教程(十一)Python中的運(yùn)算符

    Python入門教程(十一)Python中的運(yùn)算符

    這篇文章主要介紹了Python入門教程(十一)Python中的運(yùn)算符,Python是一門非常強(qiáng)大好用的語(yǔ)言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • 利用jupyter網(wǎng)頁(yè)版本進(jìn)行python函數(shù)查詢方式

    利用jupyter網(wǎng)頁(yè)版本進(jìn)行python函數(shù)查詢方式

    這篇文章主要介紹了利用jupyter網(wǎng)頁(yè)版本進(jìn)行python函數(shù)查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python?使用BeautifulSoup庫(kù)的方法

    Python?使用BeautifulSoup庫(kù)的方法

    BeautifulSoup庫(kù)用于從HTML或XML文件中提取數(shù)據(jù),它可以自動(dòng)將復(fù)雜的HTML文檔轉(zhuǎn)換為樹形結(jié)構(gòu),并提供簡(jiǎn)單的方法來(lái)搜索文檔中的節(jié)點(diǎn),使得我們可以輕松地遍歷和修改HTML文檔的內(nèi)容,本文給大家介紹Python?使用BeautifulSoup庫(kù)的方法,感興趣的朋友一起看看吧
    2023-10-10
  • Python?NumPy實(shí)用函數(shù)筆記之a(chǎn)llclose

    Python?NumPy實(shí)用函數(shù)筆記之a(chǎn)llclose

    這篇文章主要給大家介紹了關(guān)于Python?NumPy實(shí)用函數(shù)筆記之a(chǎn)llclose的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 使用Flask-Cache緩存實(shí)現(xiàn)給Flask提速的方法詳解

    使用Flask-Cache緩存實(shí)現(xiàn)給Flask提速的方法詳解

    這篇文章主要介紹了使用Flask-Cache緩存實(shí)現(xiàn)給Flask提速的方法,結(jié)合實(shí)例形式詳細(xì)分析了Flask-Cache的安裝、配置及緩存使用相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • python使用雙豎線分割的實(shí)現(xiàn)

    python使用雙豎線分割的實(shí)現(xiàn)

    本文主要介紹了python使用雙豎線分割的實(shí)現(xiàn),通過(guò)接收用戶輸入的字符串,使用split()方法進(jìn)行分割,并將結(jié)果輸出給用戶,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • python定向爬取淘寶商品價(jià)格

    python定向爬取淘寶商品價(jià)格

    這篇文章主要為大家詳細(xì)介紹了python定向爬取淘寶商品價(jià)格,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 基于Python實(shí)現(xiàn)人機(jī)PK小游戲

    基于Python實(shí)現(xiàn)人機(jī)PK小游戲

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)人機(jī)PK小游戲,簡(jiǎn)單來(lái)說(shuō),就是隨機(jī)生成玩家和敵人的屬性,同時(shí)互相攻擊,直至一方血量小于零,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-06-06
  • python處理json字符串(使用json.loads而不是eval())

    python處理json字符串(使用json.loads而不是eval())

    eval 跟json.loads 是不一樣的函數(shù),是有實(shí)現(xiàn)不一樣功能的地方,但是在某些地方它們兩個(gè)函數(shù)的功能是一樣的,本文就詳細(xì)介紹一下
    2021-09-09

最新評(píng)論

鄢陵县| 永福县| 志丹县| 利川市| 亚东县| 博兴县| 胶州市| 兴宁市| 重庆市| 皋兰县| 克拉玛依市| 卢氏县| 台山市| 山东省| 泰来县| 泽普县| 九龙县| 新津县| 涟水县| 达日县| 江北区| 宁明县| 黑山县| 凤山县| 扬州市| 威宁| 玉溪市| 湖口县| 长泰县| 镶黄旗| 通渭县| 汝阳县| 沙田区| 西平县| 青河县| 肥城市| 甘肃省| 读书| 马鞍山市| 扎鲁特旗| 祁东县|