亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

13個(gè)可能未使用過(guò)的Python特性

大多數(shù)程序員不知道的令人難以置信的功能列表。

Python 是頂級(jí)編程語(yǔ)言之一,它具有許多程序員從未使用過(guò)的許多隱藏功能。在這篇文章中,我將分享你可能從未使用過(guò)的13 個(gè) 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)中編寫(xiě)一個(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è)令人驚嘆的特性,它的工作方式類(lèi)似于 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ù)特定條件在變量中賦值。看看下面的代碼示例:

#?條件參數(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.多行字符串

此功能將向你展示如何編寫(xiě)不帶三引號(hào)的多行字符串??纯聪旅娴拇a示例:

#?多行字符串
str1=?"你是否正在尋找免費(fèi)的Python學(xué)習(xí)材料"?\?
??????"歡迎來(lái)到?"?\
??????"公眾號(hào)?Python專(zhuān)欄"
print(str1)?

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!