13個你可能未使用過的Python特性分享
1.列表Stepping
這是一個 step 參數(shù),可以通過采取幾個步驟來分割你的列表。此外,你可以使用 step 參數(shù)來反轉整數(shù)。看看下面的代碼示例:
# 列表Stepping data = [10, 20, 30, 40, 50] print(data[::2]) # [10, 30, 50] print(data[::3]) # [10, 40] # 使用 stepping 翻轉列表 print(data[::-1]) # [50, 40, 30, 20, 10]
2. find() 方法
find() 方法是一個很棒的功能,可以查找字符串中任何字符的任何起始索引號:
# 查找方法 x = "Python" y = "Hello From Python" print(x.find("Python")) # 0 print(y.find("From")) # 6 print(y.find("From Python")) #6
3.iter()函數(shù)
iter() 方法對于沒有任何循環(huán)幫助的迭代列表很有用。這是一個內(nèi)置方法,因此你不需要任何模塊:
# Iter() values = [1, 3, 4, 6] values = iter(values) print(next(values)) # 1 print(next(values)) # 3 print(next(values)) # 4 print(next(values)) # 6
4. Python 中的文檔測試
Doctest 功能將讓你測試你的功能并顯示你的測試報告。如果你檢查下面的示例,你需要在三引號中編寫一個測試參數(shù),如下所示:
# Doctest from doctest import testmod def Mul(x, y) -> int: """ 這個函數(shù)返回 x 和 y 參數(shù)的 mul 調用函數(shù),然后是預期的輸出: >>> Mul(4, 5) 20 >> > Mul(19, 20) 39 """ return x * y # 調用 testmod 函數(shù) testmod(name='Mul', verbose=True) 輸出: Trying: Mul(4, 5) Expecting: 20 ok Trying: Mul(19, 20) Expecting: 39 ********************************************************************** File "__main__", line 10, in Mul.Mul Failed example: Mul(19, 20) Expected: 39 Got: 380 1 items had no tests: Mul ********************************************************************** 1 items had failures: 1 of 2 in Mul.Mul 2 tests in 2 items. 1 passed and 1 failed. ***Test Failed*** 1 failures.
5. Yield聲明
Yield 語句是 Python 的另一個令人驚嘆的特性,它的工作方式類似于 return 語句,但它不是終止函數(shù)并返回,而是返回到它返回給調用者的點:
# Yield聲明 def func(): print(1) yield 1 print(2) yield 2 print(3) yield 3 for call in func(): pass# 輸出 # 1 # 2 # 3
6.處理字典缺失鍵
有時我們正在訪問的鍵不存在于字典中,這會導致鍵錯誤。為了處理丟失的鍵,我們可以使用get() 方法而不是括號方法:
# 處理字典中的缺失值 dict_1 = {1:"x",2:"y"} # 不要使用get print(dict_1[3]) # key error # 使用get print(dict_1.get(3)) # None
7. For/Else 和 While/Else
你知道 Python 還支持帶有 For 和 While 循環(huán)的 Else 嗎?當你的循環(huán)完成其迭代而沒有任何中斷時,將執(zhí)行此 else 語句。
下面的 For 循環(huán)示例 else 將執(zhí)行,但在 While 循環(huán)中,我添加了一個不會觸發(fā) else 語句的 break 語句:
# 為/否則 for x in range(5): print(x) else: print("Loop Completed") # 執(zhí)行# While / Else i = 0 while i < 5: break else: print("Loop Completed") # 未執(zhí)行
8.命名字符串格式化
此功能將替換字符串占位符中的值。當你需要在字符串的不同占位符中添加值時,這會派上用場:
# 命名格式化字符串 a = "Python" b = "工作"# Way 1 string = "I looking for a {} Programming {}".format(a, b) print(string) # I looking for a Python Programming Job #Way 2 string = f"I looking for a {a} Programming " print(string) # I looking for a Python Programming Job
9.設置遞歸限制
這是 Python 的另一個很棒的特性,它可以讓你設置 Python 程序的遞歸限制。請查看以下代碼示例以更好地理解:
# 設置遞歸限制 import sys sys.setrecursionlimit = 2000 print(sys.getrecursionlimit) # 2000
10. 條件參數(shù)
條件賦值功能使用三元運算符,可以根據(jù)特定條件在變量中賦值??纯聪旅娴拇a示例:
# 條件參數(shù) x = 5 if 2 > 4 else 2 print(x) # 2 y = 10 if 32 > 41 else 24 print(y) # 24
11. 參數(shù)拆包
你可以解壓縮函數(shù)中的任何可迭代數(shù)據(jù)參數(shù)??纯聪旅娴拇a示例:
# 參數(shù)解包 def func(x, y): print(x, y) list_1 = [100, 200] dict_1 = {'x':300, 'y':400} func(*list_1) func(**dict_1) # 輸出 # 100 200 # 300 400
12.Hello World!
如果你鍵入以下代碼并運行它,這是一個有趣的功能。Python 會用兩個著名的詞來迎接你。試試看。
import __hello__
13. 多行字符串
此功能將向你展示如何編寫不帶三引號的多行字符串。看看下面的代碼示例:
# 多行字符串 str1= "你是否正在尋找Python學習材料" \ "歡迎來到 " \ "本公眾號" print(str1) # 你是否正在尋找Python學習材料,歡迎來到 本公眾號
到此這篇關于13個你可能未使用過的Python特性分享的文章就介紹到這了,更多相關Python特性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python與Node.js之間實現(xiàn)通信的JSON數(shù)據(jù)接收發(fā)送
Python和Node.js是兩個流行且功能強大的編程語言,它們之間使用JSON格式進行數(shù)據(jù)交換是一種高效和靈活的方式,本文將詳細介紹如何在Python和Node.js之間通過JSON進行數(shù)據(jù)通信,包括發(fā)送和接收JSON數(shù)據(jù)以及一些常見的交互示例代碼2024-01-01django通過ajax發(fā)起請求返回JSON格式數(shù)據(jù)的方法
這篇文章主要介紹了django通過ajax發(fā)起請求返回JSON格式數(shù)據(jù)的方法,較為詳細的分析了django處理ajax請求的技巧,需要的朋友可以參考下2015-06-06python模塊smtplib實現(xiàn)純文本郵件發(fā)送功能
這篇文章主要為大家詳細介紹了python模塊smtplib實現(xiàn)純文本郵件發(fā)送功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05