13個(gè)你可能未使用過(guò)的Python特性分享
1.列表Stepping
這是一個(gè) step 參數(shù),可以通過(guò)采取幾個(gè)步驟來(lái)分割你的列表。此外,你可以使用 step 參數(shù)來(lái)反轉(zhuǎn)整數(shù)??纯聪旅娴拇a示例:
# 列表Stepping data = [10, 20, 30, 40, 50] print(data[::2]) # [10, 30, 50] print(data[::3]) # [10, 40] # 使用 stepping 翻轉(zhuǎn)列表 print(data[::-1]) # [50, 40, 30, 20, 10]
2. find() 方法
find() 方法是一個(gè)很棒的功能,可以查找字符串中任何字符的任何起始索引號(hào):
# 查找方法
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() 方法對(duì)于沒(méi)有任何循環(huán)幫助的迭代列表很有用。這是一個(gè)內(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 中的文檔測(cè)試
Doctest 功能將讓你測(cè)試你的功能并顯示你的測(cè)試報(bào)告。如果你檢查下面的示例,你需要在三引號(hào)中編寫一個(gè)測(cè)試參數(shù),如下所示:
# Doctest
from doctest import testmod
def Mul(x, y) -> int:
"""
這個(gè)函數(shù)返回 x 和 y 參數(shù)的 mul
調(diào)用函數(shù),然后是預(yù)期的輸出:
>>> Mul(4, 5)
20
>> > Mul(19, 20)
39
"""
return x * y
# 調(diào)用 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 語(yǔ)句是 Python 的另一個(gè)令人驚嘆的特性,它的工作方式類似于 return 語(yǔ)句,但它不是終止函數(shù)并返回,而是返回到它返回給調(diào)用者的點(diǎn):
# Yield聲明
def func():
print(1)
yield 1
print(2)
yield 2
print(3)
yield 3
for call in func():
pass# 輸出
# 1
# 2
# 3
6.處理字典缺失鍵
有時(shí)我們正在訪問(wèn)的鍵不存在于字典中,這會(huì)導(dǎo)致鍵錯(cuò)誤。為了處理丟失的鍵,我們可以使用get() 方法而不是括號(hào)方法:
# 處理字典中的缺失值
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 嗎?當(dāng)你的循環(huán)完成其迭代而沒(méi)有任何中斷時(shí),將執(zhí)行此 else 語(yǔ)句。
下面的 For 循環(huán)示例 else 將執(zhí)行,但在 While 循環(huán)中,我添加了一個(gè)不會(huì)觸發(fā) else 語(yǔ)句的 break 語(yǔ)句:
# 為/否則
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.命名字符串格式化
此功能將替換字符串占位符中的值。當(dāng)你需要在字符串的不同占位符中添加值時(shí),這會(huì)派上用場(chǎng):
# 命名格式化字符串
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.設(shè)置遞歸限制
這是 Python 的另一個(gè)很棒的特性,它可以讓你設(shè)置 Python 程序的遞歸限制。請(qǐng)查看以下代碼示例以更好地理解:
# 設(shè)置遞歸限制 import sys sys.setrecursionlimit = 2000 print(sys.getrecursionlimit) # 2000
10. 條件參數(shù)
條件賦值功能使用三元運(yùn)算符,可以根據(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!
如果你鍵入以下代碼并運(yùn)行它,這是一個(gè)有趣的功能。Python 會(huì)用兩個(gè)著名的詞來(lái)迎接你。試試看。
import __hello__
13. 多行字符串
此功能將向你展示如何編寫不帶三引號(hào)的多行字符串??纯聪旅娴拇a示例:
# 多行字符串
str1= "你是否正在尋找Python學(xué)習(xí)材料" \
"歡迎來(lái)到 " \
"本公眾號(hào)"
print(str1)
# 你是否正在尋找Python學(xué)習(xí)材料,歡迎來(lái)到 本公眾號(hào)到此這篇關(guān)于13個(gè)你可能未使用過(guò)的Python特性分享的文章就介紹到這了,更多相關(guān)Python特性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python與Node.js之間實(shí)現(xiàn)通信的JSON數(shù)據(jù)接收發(fā)送
Python和Node.js是兩個(gè)流行且功能強(qiáng)大的編程語(yǔ)言,它們之間使用JSON格式進(jìn)行數(shù)據(jù)交換是一種高效和靈活的方式,本文將詳細(xì)介紹如何在Python和Node.js之間通過(guò)JSON進(jìn)行數(shù)據(jù)通信,包括發(fā)送和接收J(rèn)SON數(shù)據(jù)以及一些常見(jiàn)的交互示例代碼2024-01-01
django通過(guò)ajax發(fā)起請(qǐng)求返回JSON格式數(shù)據(jù)的方法
這篇文章主要介紹了django通過(guò)ajax發(fā)起請(qǐng)求返回JSON格式數(shù)據(jù)的方法,較為詳細(xì)的分析了django處理ajax請(qǐng)求的技巧,需要的朋友可以參考下2015-06-06
Python對(duì)象的屬性訪問(wèn)過(guò)程詳解
這篇文章主要介紹了Python對(duì)象的屬性訪問(wèn)過(guò)程詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
python模塊smtplib實(shí)現(xiàn)純文本郵件發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了python模塊smtplib實(shí)現(xiàn)純文本郵件發(fā)送功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
解決pycharm無(wú)法調(diào)用pip安裝的包問(wèn)題
今天小編就為大家分享一篇解決pycharm無(wú)法調(diào)用pip安裝的包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python將ip地址轉(zhuǎn)換成整數(shù)的方法
這篇文章主要介紹了python將ip地址轉(zhuǎn)換成整數(shù)的方法,涉及Python針對(duì)IP地址的轉(zhuǎn)換技巧,需要的朋友可以參考下2015-03-03

