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

歡迎訪問 生活随笔!

生活随笔

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

python

【Python基础】Python 10 个习惯用法,看看你都知道不?

發(fā)布時間:2025/3/8 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python基础】Python 10 个习惯用法,看看你都知道不? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python 使用習(xí)慣是指那些經(jīng)常被使用的語法、語義和結(jié)構(gòu),這樣寫更加符合 Python 風(fēng)格,看起來更像一個地道的 Pythoner.

本系列目的,分類整理 Python 使用習(xí)慣。

1. if not x

直接使用 x 和 not x 判斷 x 是否為 None 或空

x?=?[1,3,5]if?x:print('x?is?not?empty?')if?not?x:print('x?is?empty')

下面寫法不夠 Pythoner

if?x?and?len(x)?>?0:print('x?is?not?empty?')if?x?is?None?or?len(x)?==?0:print('x?is?empty')

2. enumerate 枚舉

直接使用 enumerate 枚舉容器,第二個參數(shù)表示索引的起始值

x?=?[1,?3,?5]for?i,?e?in?enumerate(x,?10):?#?枚舉print(i,?e)

下面寫法不夠 Pythoner:

i?=?0while?i?<?len(x):print(i+10,?x[i])i+=1

3. in

判斷字符串是否包含某個子串,使用in明顯更加可讀:

x?=?'zen_of_python' if?'zen'?in?x:print('zen?is?in')

find 返回值 要與 -1 判斷,不太符合習(xí)慣:

if?x.find('zen')?!=?-1:print('zen?is?in')

4 zip 打包

使用 zip 打包后結(jié)合 for 使用輸出一對,更加符合習(xí)慣:

keys?=?['a',?'b',?'c'] values?=?[1,?3,?5]for?k,?v?in?zip(keys,?values):print(k,?v)

下面不符合 Python 習(xí)慣:

d?=?{} i?=?0 for?k?in?keys:print(k,?values[i])i?+=?1

5 一對 '''

打印被分為多行的字符串,使用一對 ''' 更加符合 Python 習(xí)慣:

print('''"Oh?no!"?He?exclaimed. "It's?the?blemange!"''')

下面寫法就太不 Python 風(fēng)格:

print('"Oh?no!"?He?exclaimed.\n'?+'It\'s?the?blemange!"')

6 交換元素

直接解包賦值,更加符合 Python 風(fēng)格:

a,?b?=?1,?3 a,?b?=?b,?a??#?交換a,b

不要再用臨時變量 tmp ,這不符合 Python 習(xí)慣:

tmp?=?a a?=?b b?=?tmp

7 join 串聯(lián)

串聯(lián)字符串,更習(xí)慣使用 join:

chars?=?['P',?'y',?'t',?'h',?'o',?'n'] name?=?''.join(chars) print(name)

下面不符合 Python 習(xí)慣:

name?=?'' for?c?in?chars:name?+=?c print(name)

8 列表生成式

列表生成式構(gòu)建高效,符合 Python 習(xí)慣:

data?=?[1,?2,?3,?5,?8] result?=?[i?*?2?for?i?in?data?if?i?&?1]?#?奇數(shù)則乘以2 print(result)?#?[2,?6,?10]

下面寫法不夠 Pythoner:

results?=?[] for?e?in?data:if?e?&?1:results.append(e*2) print(results)

9 字典生成式

除了列表生成式,還有字典生成式:

keys?=?['a',?'b',?'c'] values?=?[1,?3,?5]d?=?{k:?v?for?k,?v?in?zip(keys,?values)} print(d)

下面寫法不太 Pythoner:

d?=?{} for?k,?v?in?zip(keys,?values):d[k]?=?v print(d)

10 __name__ == '__main__'有啥用

曾幾何時,看這別人代碼這么寫,我們也就跟著這么用吧,其實(shí)還沒有完全弄清楚這行到底干啥。

def?mymain():print('Doing?something?in?module',?__name__)if?__name__?==?'__main__':print('Executed?from?command?line')mymain()

加入上面腳本命名為 MyModule,不管在 vscode 還是 pycharm 直接啟動,則直接打印出:

Executed?from?command?line Doing?something?in?module?__main__

這并不奇怪,和我們預(yù)想一樣,因?yàn)橛袩o這句 __main__ ,都會打印出這些。

但是當(dāng)我們 import MyModule 時,如果沒有這句,直接就打印出:

In?[2]:?import?MyModule Executed?from?command?line Doing?something?in?module?MyModule

只是導(dǎo)入就直接執(zhí)行 mymain 函數(shù),這不符合我們預(yù)期。

如果有主句,導(dǎo)入后符合預(yù)期:

In?[6]:?import?MyModuleIn?[7]:?MyModule.mymain() Doing?something?in?module?MyModule

以上就是 10 個 Python 習(xí)慣用法,第一期。希望能幫助到你,歡迎在看哦。

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯AI基礎(chǔ)下載(pdf更新到25集)機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085,加入微信群請掃碼喜歡文章,點(diǎn)個在看

總結(jié)

以上是生活随笔為你收集整理的【Python基础】Python 10 个习惯用法,看看你都知道不?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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