python编程语言一览_编程语言学习:python有趣用法汇总
用python過(guò)程中經(jīng)常會(huì)不經(jīng)意間遇到非常有趣的用法,于是特意搜集了一些。
有趣的用法
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ì)疑,主要觀點(diǎn)是可以通過(guò)封裝成函數(shù)來(lái)取代這一用法,而封裝成函數(shù)是更加通用易懂的做法,所以一般不會(huì)使用for-else用法。
2.try-else用法
如果沒(méi)有觸發(fā)異常就執(zhí)行else
參考:https://eastlakeside.gitbooks.io/interpy-zh/content/exception/try_else_clause.html
3.解包用法
類似這樣a,b,c = [‘a(chǎn)’, ‘b’, ‘c’]
python有趣的解包用法:https://zhuanlan.zhihu.com/p/33896402
4.單行if-else
5.迭代器傳入函數(shù)中不用加括號(hào)
7.or的用法
python中x or y表示如果x為真就是x的值,否則為y的值
我們會(huì)經(jīng)常看到類似這樣的用法(比如函數(shù)的一個(gè)value參數(shù)沒(méi)有設(shè)置默認(rèn)值,這樣使用就允許它不賦值)
8.and的用法
python中x and y表示如果x是假,結(jié)果就是x的值,否則就是y的值
x and y and z多個(gè)and連接時(shí),如果全是真結(jié)果就是最后一個(gè)的值;如果中間有假的值,結(jié)果就是第一個(gè)假的值
舉一個(gè)例子
細(xì)細(xì)品味and和or的差別,他們邏輯類似,但是實(shí)現(xiàn)的功能是不可以相互替代的
or 是結(jié)果如果不滿意有個(gè)善后工作
and是要做一件事之前先檢驗(yàn)一下,不能做就不讓它做
9.if value:
這里總結(jié)一下這種情況下什么時(shí)候是True,什么時(shí)候是False
False: 0 0.0 ” [] {} () set() None False
True:
‘ ‘ ‘a(chǎn)nything’ [”] [0] (None, )
沒(méi)有內(nèi)容的可迭代對(duì)象
另外要注意一點(diǎn),我們用if判斷一個(gè)對(duì)象是不是None的時(shí)候,要if a is None而不要直接if a,因?yàn)槿绻呛笳?#xff0c;有非常多不是None的情況也會(huì)判定為False,比如空字符串、空列表等,為了精確指定None還是要用前者,這也是一種規(guī)范。
10.下劃線的特殊使用
python中下劃線是一種特殊的變量和符號(hào),有一些特殊的用途
詳見(jiàn)python中下劃線的使用:https://zhuanlan.zhihu.com/p/33866181
11.文檔字符串
python有一種獨(dú)一無(wú)二的注釋方式,在包、模塊、函數(shù)、類中第一句,使用”’doc”’這樣三引號(hào)注釋,就可以在對(duì)象中用__doc__的方式提取
比較規(guī)范的寫(xiě)法是這樣的(這里參考grequests模塊的寫(xiě)法)
其實(shí)參數(shù)還有其他的寫(xiě)法,如numpy庫(kù)的寫(xiě)法,可以看這里:https://python-guide.gitbooks.io/python-style-guide/content/style-guide/comment_and_docs.html
除此之外,函數(shù)注釋還有另一種方式,函數(shù)名可以直接調(diào)用某個(gè)參數(shù)的注釋,詳見(jiàn)Python 的函數(shù)注釋:https://segmentfault.com/a/1190000005173184
有用的函數(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)索引
4.管道操作
func1(func2(func3(a)))寫(xiě)成類似a %>% func3 %>% func2 %>% func1,清晰展示函數(shù)執(zhí)行的順序,增強(qiáng)可讀性
python本身不帶有這樣的用法,只是一些庫(kù)提供了這樣的用法,比如pandas和syntax_sugar
其他
另外,就是一些基礎(chǔ)的
列表推導(dǎo)式
裝飾器
生成器
map reduce filter
鏈?zhǔn)奖容^
類的魔術(shù)方法:https://zhuanlan.zhihu.com/p/31161355
學(xué)習(xí)代碼規(guī)范可以參考下面資料
PEP8: https://www.python.org/dev/peps/pep-0008/
Python 代碼、單元測(cè)試和項(xiàng)目規(guī)范:https://python-guide.gitbooks.io/python-style-guide/content/index.html
google開(kāi)源項(xiàng)目風(fēng)格指南:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/contents/
更新補(bǔ)充
for-else的更多討論
下面引用《Effictive Python》一書(shū)中內(nèi)容
“
a = 4 b = 9
結(jié)尾:
總結(jié)起來(lái)就是for-else的優(yōu)勢(shì)是可以被寫(xiě)函數(shù)的方式替代的
總結(jié)
以上是生活随笔為你收集整理的python编程语言一览_编程语言学习:python有趣用法汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: latex安装包_LaTeX排版入门须知
- 下一篇: python变量初始化_tensorfl