有趣的Python用法有哪些-創(chuàng)新互聯(lián)

這篇文章主要講解了“有趣的Python用法有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“有趣的Python用法有哪些”吧!

創(chuàng)新互聯(lián)建站主要為客戶(hù)提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺(jué)設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、營(yíng)銷(xiāo)推廣、網(wǎng)站程序開(kāi)發(fā)、HTML5響應(yīng)式重慶網(wǎng)站建設(shè)公司、手機(jī)網(wǎng)站制作設(shè)計(jì)、微商城、網(wǎng)站托管及網(wǎng)站維護(hù)、WEB系統(tǒng)開(kāi)發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為PE包裝袋行業(yè)客戶(hù)提供了網(wǎng)站營(yíng)銷(xiāo)服務(wù)。

有趣的用法

1.for-else用法

循環(huán)正常結(jié)束則執(zhí)行else語(yǔ)句。一般用于循環(huán)找符合條件的元素,如果找到則break調(diào)出循環(huán),不會(huì)觸發(fā)else;如果沒(méi)有找到(完整運(yùn)行循環(huán))則print not found

《Effictive Python》一書(shū)中對(duì)for-else用法提出了質(zhì)疑,主要觀(guān)點(diǎn)是可以通過(guò)封裝成函數(shù)來(lái)取代這一用法,而封裝成函數(shù)是更加通用易懂的做法,所以一般不會(huì)使用for-else用法。

2.try-else用法

如果沒(méi)有觸發(fā)異常就執(zhí)行else

3.解包用法

類(lèi)似這樣a,b,c = ['a', 'b', 'c']

4.單行if-else

a = 1
b = 3 
if a == 1 
else 2
print('it is one' if a == 1 else 'no')

5.迭代器傳入函數(shù)中不用加括號(hào)

# 一般是這樣
a = (i for i in range(10))
sum(a)
# 我們可以這樣
sum((i for i in range(10)))
# 但我們還可以這樣
sum(i for i in range(10))
# 類(lèi)似的有
' '.join(str(i) for i in range(10))

7.or的用法

python中x or y表示如果x為真就是x的值,否則為y的值

我們會(huì)經(jīng)??吹筋?lèi)似這樣的用法(比如函數(shù)的一個(gè)value參數(shù)沒(méi)有設(shè)置默認(rèn)值,這樣使用就允許它不賦值)

value = value or {}
# 相當(dāng)于
value = value if value else {}

8.and的用法

python中x and y表示如果x是假,結(jié)果就是x的值,否則就是y的值

x and y and z多個(gè)and連接時(shí),如果全是真結(jié)果就是最后一個(gè)的值;如果中間有假的值,結(jié)果就是第一個(gè)假的值

舉一個(gè)例子

def not_empty(a):
    return a and a.strip()
not_empty(' a ')
# 值為 'a'
not_empty(None)
# 不會(huì)報(bào)錯(cuò)(如果 return a.strip() 就會(huì)報(bào)錯(cuò))
# 在處理None的問(wèn)題上相當(dāng)于
def not_empty(a):
    if a is None:
        return None
    else:
        return a.strip()

細(xì)細(xì)品味and和or的差別,他們邏輯類(lèi)似,但是實(shí)現(xiàn)的功能是不可以相互替代的

  • or 是結(jié)果如果不滿(mǎn)意有個(gè)善后工作

  • and是要做一件事之前先檢驗(yàn)一下,不能做就不讓它做

9.if value:

# 要用
if value:
# 不要用
if value == True:

這里總結(jié)一下這種情況下什么時(shí)候是True,什么時(shí)候是False

False: 0 0.0 '' [] {} () set() None False

True:

  • ' ' 'anything' [''] [0] (None, )

  • 沒(méi)有內(nèi)容的可迭代對(duì)象

另外要注意一點(diǎn),我們用if判斷一個(gè)對(duì)象是不是None的時(shí)候,要if a is None而不要直接if a,因?yàn)槿绻呛笳?,有非常多不?code>None的情況也會(huì)判定為False,比如空字符串、空列表等,為了精確指定None還是要用前者,這也是一種規(guī)范。

10.下劃線(xiàn)的特殊使用

python中下劃線(xiàn)是一種特殊的變量和符號(hào),有一些特殊的用途

11.文檔字符串

python有一種獨(dú)一無(wú)二的注釋方式,在包、模塊、函數(shù)、類(lèi)中第一句,使用'''doc'''這樣三引號(hào)注釋?zhuān)涂梢栽趯?duì)象中用__doc__的方式提取

比較規(guī)范的寫(xiě)法是這樣的(這里參考grequests模塊的寫(xiě)法)

def myfun(a, b):
    '''add two numbers
    :param a: one number
    :param b: another number
    :returns: a number
    '''
    print(a + b)
print(myfun.__doc__)
# 結(jié)果為
add two numbers
    :param a: one number
    :param b: another number
    :returns: a number

其實(shí)參數(shù)還有其他的寫(xiě)法,如numpy庫(kù)的寫(xiě)法,可以看 這里

除此之外,函數(shù)注釋還有另一種方式,函數(shù)名可以直接調(diào)用某個(gè)參數(shù)的注釋

有用的函數(shù)

1.sum的本質(zhì)

本質(zhì):sum(iterable, start=0)將可迭代對(duì)象使用+連接

所以sum([[1,2],[3,4]], [])返回結(jié)果為[1, 2, 3, 4]

2.range(start, stop[, step])

可以直接用for i in range(10, 0, -1)降序循環(huán)

3.enumerate循環(huán)索引

for index, item in enumerate(['a', 'b', 'c']):
    print(index, item)
輸出:
0 a
1 b
2 c

4.管道操作

func1(func2(func3(a)))寫(xiě)成類(lèi)似a %>% func3 %>% func2 %>% func1,清晰展示函數(shù)執(zhí)行的順序,增強(qiáng)可讀性

python本身不帶有這樣的用法,只是一些庫(kù)提供了這樣的用法,比如pandas和syntax_suga

感謝各位的閱讀,以上就是“有趣的Python用法有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)有趣的Python用法有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)頁(yè)名稱(chēng):有趣的Python用法有哪些-創(chuàng)新互聯(lián)
文章來(lái)源:http://muchs.cn/article0/egsio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、軟件開(kāi)發(fā)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)