成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為了更好的代碼:12個Python小竅門

開發 后端
使用和學習Python的人不在少數,但是真正掌握了解這門語言的人并不多。你了解最新的Python功能和技術嗎?這12個小技巧能幫助你提高代碼質量。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

使用和學習Python的人不在少數,但是真正掌握了解這門語言的人并不多。你了解最新的Python功能和技術嗎?這12個小技巧能幫助你提高代碼質量。

[[334111]]

1. F-Strings

F-Strings提供了一種簡便的方法,可以將Python表達式嵌入字符串文本中進行格式化。首先,定義print語句中的會用到的兩個變量:name和age。

  1. name = "Pavel" 
  2. age = 23 

為了不處理字符串連接或在print語句中使用逗號,可以使用Python3.6升級版字符串格式化法“f-Strings”。只需在大括號內有變量或表達式的字符串前面放一個小寫或大寫字母“f”即可。

F-Strings是一種很棒的格式化字符串新方法,此法得出的結果可讀性更強、速度更快、格式更簡潔、更不容易出錯。

2. 查找任何對象的大小

默認的sys模塊包含一個getsizeof函數,該函數接受一個對象并以字節為單位返回其大小。該對象可以是任何類型。例如:

僅計算直接歸因于該對象的內存消耗,而不計算它所指對象的內存消耗。再來看另一個例子:

3. 原地交換變量

在許多其他編程語言中,只有通過定義一個額外的temp(臨時)變量才能交換兩個或以上變量的值。假設想交換x和y:

  1. temp = x 
  2. x = y 
  3. y = temp 

Python用一種簡單的單行結構來交換變量,類似于將值賦給一行中多個變量的概念。以下代碼與上面代碼相同,但沒有使用任何臨時變量:

4. 比較運算符的鏈接

通常要檢查兩個以上的條件時,必須使用邏輯運算符,例如and/or:

  1. if a < b and b < c: 

在Python中,有一種更好的方法可以使用比較運算符鏈接來編寫它。運算符的鏈可寫為:

  1. if a < b < c: 

例如:

5. 列表理解

列表理解是更常用、更巧妙的列表制作方式。不需要創建空列表并將每個元素添加到末尾,只需按照以下格式同時定義列表及其內容:

  1. new_list = [expression for item in iterable (if conditional)] 

例如:

另一個例子(有條件):

6. 字符串乘法

在Python中,不僅可以乘以數字,還可以乘以字符串。例如:

7. 在一行中分配多個變量

可用逗號分隔變量和值,從而把多個值分配給各個變量:

這在對序列(例如列表或元組)解構/解包時也同樣適用,并且是將序列的元素更巧妙地分配給各個變量,因為不需要使用循環或單獨索引序列中的每個元素。

8. 參數解包

當需要對列表或元組中的參數進行解包以進行需要單獨位置參數的函數調用時,Splat或Scatter運算符* 有時能發揮作用。

例如,內置的range()函數需要單獨的開始和停止參數。編寫函數調用時,可以使用* 運算符將參數從列表或元組中解包:

  1. 讓我們定義一個簡單的列表:x = [1,2,3,4,5]。 

解包運算符的一個常見示例是使用 print:

  1. print(*x) // Result: 1 2 3 4 5 

這只是打印出列表中的每個元素,這些元素以空格分隔,因為解包運算符接受了列表中的所有元素,并將它們作為參數傳遞,因此上面代碼轉換成print(1,2,3,4,5)。

這個Python技巧在函數中經常使用,以將方法調用接收到的所有參數‘打包’到單個變量中。例如:

上面的函數func可以接受無限數量的參數(args[0]和args[1]將分別提供第一個和第二個參數)。

以類似的方式,字典可以使用**運算符傳遞關鍵字參數。來定義一個名為 person的Python字典:

  1. person = {"name": "Paul", "age":23, "location": "London"} 

你可以使用**運算符將字典傳遞給函數。傳入字典將把keys分解為函數關鍵字參數,然后將該值作為為該參數傳遞的實際值。例如:

9. 創建Enum

Enum是Python中用于創建枚舉的類,枚舉是附加到唯一常量值的一組符號名。

為了創建Enum,必須創建一個類,該類是所需Enum的名稱。剩下要做的就是列出變量并將其設置為所需的值:

以訪問枚舉成員Paul為例,只需執行Person.Paul,它將返回0。在Python中,可以通過以下方式簡化上述示例:將變量彼此相鄰列出并將它們設置為等于range函數:

10. Enumerate

通常在遍歷列表時,不僅要訪問列表中所有的索引,還要訪問實際元素。來定義一個字符列表:

  1. x = ['a', 'b', 'c'] 

與其以標準方式遍歷它,不如訪問元素和索引:

使用Enumerate:

Enumerate是Python的內置函數,它使我們可以循環一個可迭代對象而且有一個自動計數器。實際上它將列表中的每個元素與相應的索引配對,大多數新手,甚至一些高級程序員都不了解它。

可將變量 i和v更改為喜歡的變量名稱。例如,for index, count in enumerate(x).。

11. Help函數

Python help函數用于查找模塊、函數、類、關鍵字等的幫助文檔。只需在help函數中傳遞一個對象即可檢索該對象的幫助文檔:

12. Dir函數

dir()是Python3中一個強大的內置函數,它可返回任何對象(即函數、模塊、字符串、列表、字典等)的屬性和方法的列表。在幾乎沒有關于模塊的信息時,這非常有用,有助于更快地學習新模塊。例如:

dir()通常用于調試目的。dir()能夠列出傳遞參數的所有屬性,在分別處理許多類和函數時非常有用。

編碼之路還很漫長,進步要在一點點的積累中實現。

 

責任編輯:趙寧寧 來源: 讀芯術
相關推薦

2020-06-23 07:48:18

Python開發技術

2010-09-26 14:57:40

控制IT預算

2016-05-24 09:40:20

2024-10-10 15:24:50

JSONPython

2022-08-20 19:12:22

編程竅門

2013-07-29 10:39:39

App竅門

2020-09-13 09:14:35

PythonJSON開發

2009-10-09 13:33:00

自學CCNACCNA

2009-06-23 13:32:48

JavaScript初竅門

2010-05-26 10:10:53

openssh

2009-07-14 10:21:19

Eclipse 3.5

2013-07-05 16:08:40

開發效率

2010-10-14 13:31:13

無線IP沖突

2018-09-11 08:40:00

前端JavaScriptt性能優化

2010-09-29 08:45:12

Rundll32卸載

2010-09-29 09:01:10

2019-03-28 14:30:21

代碼開發命令

2016-05-26 10:21:18

Windows 10配置性能

2017-05-03 16:51:00

云服務器竅門選擇

2010-12-23 14:46:08

expect腳本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品黄 | 在线免费观看毛片 | 波多野结衣在线观看一区二区三区 | 99精品视频免费观看 | 亚洲性人人天天夜夜摸 | 射久久 | 中文在线a在线 | 国产美女精品 | 亚洲一区二区视频在线观看 | 欧美精品一区二区三区在线 | 国产精品美女久久久久久免费 | 久久久日韩精品一区二区三区 | 神马影院一区二区三区 | 久久成人一区 | 精品国产一区二区三区性色av | 国产精品国产精品国产专区不蜜 | 青春草国产 | 久久中文免费视频 | 91精品国产777在线观看 | 国产亚洲精品久久午夜玫瑰园 | 日韩一区二区三区视频 | 男女视频免费 | 99热播精品 | 国产一区二区三区高清 | 国产精品免费大片 | 欧美综合一区二区 | 日韩精品一区二区三区在线观看 | 中文字幕在线观看国产 | 请别相信他免费喜剧电影在线观看 | 国产高清一区二区三区 | 久久机热 | 国产精品毛片在线 | 日日天天 | 日韩成人| 黄色一级大片在线免费看产 | 91精品国产欧美一区二区成人 | 久久久久久久久久久高潮一区二区 | 成人激情免费视频 | 日韩在线综合网 | 精品欧美一区二区三区久久久 | 国产成人精品a视频一区www |