溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

為什么不在Python中使用無(wú)用分號(hào)

發(fā)布時(shí)間:2021-11-01 16:37:15 來(lái)源:億速云 閱讀:184 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“為什么不在Python中使用無(wú)用分號(hào)”,在日常操作中,相信很多人在為什么不在Python中使用無(wú)用分號(hào)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”為什么不在Python中使用無(wú)用分號(hào)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

我常在C / C  ++語(yǔ)言中看到很多分號(hào)。在代碼中,分號(hào)表示語(yǔ)句終止。Python并未強(qiáng)制使用分號(hào)來(lái)分隔語(yǔ)句,但因?yàn)榉痔?hào)導(dǎo)致Python亂碼的情況可不少。

最近,筆者正在學(xué)習(xí)Python的數(shù)據(jù)科學(xué)課程。講師講解了條件語(yǔ)句并編寫了以下代碼:

temp =10;if temp <12: print('It is cold'); cold = True;

筆者當(dāng)時(shí)的反應(yīng)是:這太可怕了!分號(hào)僅在Python中的非典型情況下使用。筆者準(zhǔn)備了一篇小指南,解釋為什么不應(yīng)該在Python中使用分號(hào),并列出了少數(shù)特殊情況。

語(yǔ)句終止符

在許多大眾的編程語(yǔ)言中,需要在每個(gè)語(yǔ)句的末尾添加分號(hào)。例如,在C ++中:

int c =10; int a = 5;printf('In C++, semicolon at the end is must');

但Python并非如此。Python是一種簡(jiǎn)潔的編程語(yǔ)言,你不需要添加不必要的字符和語(yǔ)法。在Python中,一條語(yǔ)句結(jié)束于一行的結(jié)尾(方括號(hào),引號(hào)或括號(hào)除外)。例如:

c = 10 a = 5print('No semicolons in Python')

語(yǔ)句分隔符

Python中的分號(hào)表示分隔,而不是終止。它允許在同一行中編寫多個(gè)語(yǔ)句。

print('Statement1'); print('Statement 2'); print('Statement 3')

此語(yǔ)法允許在單個(gè)語(yǔ)句的末尾加上分號(hào):

print('WhyGod? WHY?');

該語(yǔ)句表示print('...'),然后在下一句終止。因此它實(shí)際上是兩個(gè)語(yǔ)句,其中第二個(gè)為空。即使該語(yǔ)言允許使用分號(hào)分隔語(yǔ)句,但大多數(shù)Python程序員都不會(huì)在其代碼中使用它。

為什么不在Python中使用無(wú)用分號(hào)
圖源:unsplash

Python應(yīng)該是清晰可讀的。分號(hào)之類的語(yǔ)法字符會(huì)導(dǎo)致不必要的混亂。如果將這樣的代碼發(fā)送給經(jīng)驗(yàn)豐富的Python程序員,他可能不會(huì)再理你了。

temp =10; cold =False;               if temp<15: print('It is cold'); cold =True; print('Another statement')           print(cold); print('Done');

將多條語(yǔ)句強(qiáng)制放在一行上會(huì)使原本簡(jiǎn)單的代碼難以閱讀。

何時(shí)使用分號(hào)?

那么問(wèn)題來(lái)了,既然分號(hào)既不美觀又礙事,為什么Python中允許使用分號(hào)?

筆者認(rèn)為,這是為了使兩種編程語(yǔ)言之間的轉(zhuǎn)換變得稍微容易一些。具有Java,C ++和PHP背景的程序員習(xí)慣性地將(無(wú)用的)終止符放在每一行的末尾。

但是,在下列這些情況下,分號(hào)也會(huì)派上用場(chǎng):

從Shell運(yùn)行腳本

最常見(jiàn)的一種情況是使用python-c' <script> '從shell運(yùn)行一個(gè)簡(jiǎn)短的腳本。因?yàn)椴荒茉诖颂幨褂每s進(jìn),所以需要鍵入許多用分號(hào)分隔的表達(dá)式。以下面語(yǔ)句為例:

python-c 'import math; t = math.pi;print(int(t))&rsquo;

另一個(gè)用例是exec語(yǔ)句:

exec('fori in [100,200,300]: print(i);print(i*2)')

評(píng)估表達(dá)式的副作用

在Jupyter  Notebook之類的交互式環(huán)境中工作時(shí),最后一個(gè)表達(dá)式返回的值將以字符串形式輸出。評(píng)估某個(gè)函數(shù)的副作用真的會(huì)很煩人,在matplotlib中查看這個(gè)問(wèn)題會(huì)產(chǎn)生贅余。

筆者將在JupyterNotebook中創(chuàng)建一個(gè)簡(jiǎn)單的直方圖。如下圖所示,運(yùn)行此腳本會(huì)在輸出時(shí)添加多余的一行:Text(0.5,1.0,'Histogram')。

為什么不在Python中使用無(wú)用分號(hào)

這實(shí)際上是調(diào)用.set_title(...)函數(shù)的返回值。為了抑制輸出,可以在最后一條語(yǔ)句的末尾添加一個(gè)分號(hào):

axis.set_title('Histogram',size=10);

到此,關(guān)于“為什么不在Python中使用無(wú)用分號(hào)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI