您好,登錄后才能下訂單哦!
這篇文章主要介紹“為什么不在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應(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))’
另一個(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')。
這實(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í)用的文章!
免責(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)容。