黃哥Python 細說 條件(三元)操作符
******* 特別提示,黃哥的QQ 只為學員服務,需要一對一答疑請到值乎提問********
在Python 有一種語法,初學者看到一臉懵逼,其實它很簡單,就是一個語法,不要太當回事。知道它,會用即可。
1、先練練兵,請自己在python shell 中敲一下。
In [1]: x , y = 6, 8nnIn [2]: z = x if x > y else ynnIn [3]: znOut[3]: 8n
2、語法形式,既然是操作符,那麼由操作符可以構成表達式。表達式有一個值,可以參與運算或者賦值給變數。
表達式1 if 條件 else 表達式2 構成一個表達式。
整個表達式的值,是這樣計算的,如果if 後面的條件為真,整個三元操作符構成的表達式值為表達式1的值,如果為假,整個表達式的值為表達式2的值。
In [1]: x , y = 6, 8nnIn [2]: z = x if x > y else ynnIn [3]: znOut[3]: 8nnIn [4]: z = x if x < y else ynnIn [5]: znOut[5]: 6n
3、三元操作符的替代寫法。
In [6]: z = (lambda:y, lambda:x)[x > y]()nnIn [7]: znOut[7]: 8nnIn [8]: z = (lambda:y, lambda:x)[x < y]()nnIn [9]: znOut[9]: 6nnIn [10]: z = (y, x)[x > y]nnIn [11]: znOut[11]: 8nnIn [12]: z = (y, x)[x < y]nnIn [13]: znOut[13]: 6nnIn [14]: z = {True: x, False: y}[x > y]nnIn [15]: znOut[15]: 8nnIn [16]: z = (x > y) and x or ynnIn [17]: znOut[17]: 8n
4、 這種語法用得挺多,看看requests 庫中的一段代碼。
# Default empty dicts for dict params.n data = [] if data is None else datan files = [] if files is None else filesn headers = {} if headers is None else headersn params = {} if params is None else paramsn hooks = {} if hooks is None else hooksnn self.hooks = default_hooks()n for (k, v) in list(hooks.items()):n self.register_hook(event=k, hook=v)nn self.method = methodn self.url = urln self.headers = headersn self.files = filesn self.data = datan self.json = jsonn self.params = paramsn self.auth = authn self.cookies = cookiesn
部分免費python免費視頻
pythonpeixun/article
216小時學會python
pythonpeixun/article
推薦閱讀:
※Stack Overflow 報告:Python 正在令人難以置信地增長!
※Python的大數運算到底是根據什麼基礎原理或者演算法實現的?
※巧用抓包 ― 爬遍SCU玻璃杯事件所有神回復
TAG:Python |