AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

17個提升Python的編碼技巧,從此鍵盤飛起

來源: 責編: 時間:2023-12-22 17:13:03 234觀看
導讀Python 是一種真正美妙的語言。當有人想出一個好主意時,大約需要 1 分鐘和 5 行代碼來編寫幾乎可以滿足您要求的東西。然后只需要一個小時就可以將腳本擴展到 300 行,之后它仍然幾乎可以滿足您的需求。“Python 是一種

Python 是一種真正美妙的語言。當有人想出一個好主意時,大約需要 1 分鐘和 5 行代碼來編寫幾乎可以滿足您要求的東西。然后只需要一個小時就可以將腳本擴展到 300 行,之后它仍然幾乎可以滿足您的需求。uFe28資訊網——每日最新資訊28at.com

uFe28資訊網——每日最新資訊28at.com

“Python 是一種真正美妙的語言。當有人想出一個好主意時,大約需要 1 分鐘和 5 行代碼來編寫幾乎可以滿足您要求的東西。然后只需要一個小時就可以將腳本擴展到 300 行,之后它仍然幾乎可以滿足您的需求。” - 杰克詹森uFe28資訊網——每日最新資訊28at.com

1. 打印N次字符串

你可能使用循環來打印 N 次字符串。但我將向你展示了:在一小行代碼中打印 N 次字符串的優美方法。uFe28資訊網——每日最新資訊28at.com

string = "Python "ntimes = string * 3print(ntimes) # Python Python Python

2. 函數多值返回

有時候函數需要返回多個值,我們可以用下面的方式來實現:uFe28資訊網——每日最新資訊28at.com

def MultiReturn():    return 1,2,3a, b, c = MultiReturn()print(a,b,c) # 1 2 3

3. 導入模塊的文件路徑

你知道我們可以在 Python 中獲取任何導入模塊的文件路徑嗎?當你需要知道模塊的路徑時,這是一個了不起的功能。查看以下代碼示例:uFe28資訊網——每日最新資訊28at.com

import osimport jsonprint(os) # <module 'os' from '/usr/lib/python3.6/os.py'>print(json) # <module 'json' from '/usr/lib/python3.6/json/__init__.py'>

4. 快速反轉字符串

要看懂下面代碼,你可能要深入了解 Python 切片操作。uFe28資訊網——每日最新資訊28at.com

string = "Python"print(string[::-1]) # nohtyP

語法:string[start:end:stop]uFe28資訊網——每日最新資訊28at.com

  • start: 開始位置,默認為 0
  • end: 結束位置,默認為字符串長度
  • stop: 參數可以省略,默認為 1, 可以為負數,表示倒序。

5. 多變量賦值

許多其他語言 C++、Java、JavaScript 只允許對變量進行一次賦值。但是 Python 允許你執行多個分配,這在不同情況下非常有用。uFe28資訊網——每日最新資訊28at.com

a, b = 1, 2print(a,b) # 1 2

6. 去重

python 中,你不再需要循環來從列表中刪除重復項,你可以使用內置函數以快速簡便的方式完成此操作。看看下面的代碼。uFe28資訊網——每日最新資訊28at.com

lst1 = [1, 3, 3, 4, 5, 1]lst2 = ["A", "A", "B", "C", "D", "D"]print(set(lst1)) # {1, 3, 4, 5}print(set(lst2)) # {'A', 'B', 'C', 'D'}

7. 格式化字符串

你通常使用 + 一元運算符來格式化字符串。簡而言之,當想將變量與字符串附加在一起時,可以使用一元運算符 + 。但我將向你展示如何以簡單快捷的方式進行這種格式化。uFe28資訊網——每日最新資訊28at.com

name = "John"age = 23# method 1print("My name is " + name + " and I am " + str(age)) # My name is John and I am 23# method 2print("My name is {0} and I am {1}".format(name, age)) # My name is John and I am 23# method 3print(f"My name is {name} and I am {age}") # My name is John and I am 23

8. 初始化變量

你可以在 Python 中初始化空容器。簡而言之,可以在不分配值或填充它們的情況下聲明數據結構。uFe28資訊網——每日最新資訊28at.com

lst = [] # 初始化一個空列表dct = {} # 初始化一個空字典tpl = () # 初始化一個空元組set = set() # 初始化一個空集合

9. 你的python對象占內存么?

你知道Python內置模塊sys可以告訴你一個對象在python中消耗了多少內存嗎?uFe28資訊網——每日最新資訊28at.com

import sysprint(sys.getsizeof(1)) # 28print(sys.getsizeof(1.0)) # 24print(sys.getsizeof(True)) # 1print(sys.getsizeof(None)) # 1print(sys.getsizeof("Hello")) # 56print(sys.getsizeof([])) # 40print(sys.getsizeof(())) # 40print(sys.getsizeof({})) # 40print(sys.getsizeof(set())) # 40

10. 反轉列表

參照本文第4條,反轉字符串。uFe28資訊網——每日最新資訊28at.com

lst = [1, 3, 3, 4, 5, 1]print(lst[::-1]) # [1, 5, 4, 3, 3, 1]

11. 反轉字典

我將分享一個示例代碼來反轉字典。簡而言之,鍵和值將交換它們的位置。uFe28資訊網——每日最新資訊28at.com

dict = {'x' : 1, 'y' : 2, 'z' : 3}new_dict = { value : key  for key , value in dict.items()}print(new_dict) # {1: 'x', 2: 'y', 3: 'z'}## 嘗試下下面代碼,有驚喜dict = {'x' : 1, 'y' : 2, 'z' : 2}new_dict = { value : key  for key , value in dict.items()}print(new_dict) # {1: 'x', 2: 'z'}

12. 更高級的多變量賦值

本文前面,我們已經學會了如何完成多變量復制。在這個技巧中,我們將學習多變量復制的高級方法。uFe28資訊網——每日最新資訊28at.com

a, *b, c, d = 3, 4, 5, 6, 7print(a) # 3print(b) # [4, 5]print(c) # 6print(d) # 7## ?? 嘗試下下面代碼a, *b, c= 3, 4, 5, 6, 7print(a) # 3print(b) # [4, 5, 6]print(c) # 7

13. 連接列表中的字符串

您可能使用循環來迭代列表并將列表的每個項連接在一起。但是需要很多行代碼才能完成。此時可用join()方法以快速簡便的方式完成此操作。uFe28資訊網——每日最新資訊28at.com

lst = ['a', 'b', 'c']print(''.join(lst)) # abc

14. 合并字典

dict1 = {'a' : 1, 'b' : 2}dict2 = {'c' : 3, 'd' : 4}dict3 = {**dict1, **dict2}print(dict3) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

15. Python遞歸次數有限制么?

當使用遞歸函數時, Python其實已將默認將遞歸限制設置為1000,但可以通過如下代碼修改其限制:uFe28資訊網——每日最新資訊28at.com

import syscurrent_recursion_limit = sys.getrecursionlimit()print(current_recursion_limit) # 1000set_limit = sys.setrecursionlimit(2000)print(set_limit) # 2000

16. 如何挑出后綴是 xls或者 xlsx 的文件?

你可能已經使用過 startwith 和 endwith 方法來搜索字符串中的前綴或者后綴。但是你不一定知道他們可以使用多個條件。uFe28資訊網——每日最新資訊28at.com

string1 = 'abc.xls'# method 1if string1.endswith('.xls') or string1.endswith('.xlsx'):    print('Yes')# method 2if string1.endswith(('.xls','.xlsx')):    print('Yes')

17. 學會用 in 代替多個 if 語句

a = [1, 2, 3]x = 1# method 1if a[0] == x or a[1] == x or a[2] == x:    print('Number X is present in the list')# method 2if x in a:    print('Number X is present in the list')

小節

上面分享的17個提供python的技巧,希望對你有所幫助!uFe28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-52166-0.html17個提升Python的編碼技巧,從此鍵盤飛起

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 事半功倍的十個Python內置函數

下一篇: 十個提高Python水平的高級知識點

標簽:
  • 熱門焦點
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 2023 年的 Node.js 生態系統

    隨著技術的不斷演進和創新,Node.js 在 2023 年達到了一個新的高度。Node.js 擁有一個龐大的生態系統,可以幫助開發人員更快地實現復雜的應用。本文就來看看 Node.js 最新的生
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • JavaScript學習 -AES加密算法

    引言在當今數字化時代,前端應用程序扮演著重要角色,用戶的敏感數據經常在前端進行加密和解密操作。然而,這樣的操作在網絡傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數據
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 講故事上個月我寫過一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,當時用的是 GDIView + WinDbg 把問題搞定,前者用來定位泄露資源,后者用來定位泄露代碼,后面有朋友反
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生
  • 國行版三星Galaxy Z Fold5/Z Flip5發布 售價7499元起

    2023年8月3日,三星電子舉行Galaxy新品中國發布會,正式在國內推出了新一代折疊屏智能手機三星Galaxy Z Fold5與Galaxy Z Flip5,以及三星Galaxy Tab S9
  • iQOO 11S評測:行業唯一的200W標準版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,該機不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
  • DRAM存儲器10月價格下跌,NAND閃存本月價格與上月持平

    10月30日,據韓國媒體消息,自今年年初以來一直在上漲的 DRAM 存儲器的交易價格僅在本月就下跌了近 10%,此次是全年首次降價,而NAND 閃存本月價格與上月持平。市
Top