python輸出后面多一個(gè)None問(wèn)題
python輸出后面多一個(gè)None
python定義函數(shù)時(shí),一般都會(huì)有指定返回值,如果沒(méi)有顯式指定返回值,那么python就會(huì)默認(rèn)返回值為None
例:輸入:* 5 6
class Solution:
def solve(self, op, num_1, num_2):
'''
:type op, num_1, num_2: str, int, int
:rtype : Str
'''
#請(qǐng)?jiān)诖颂砑哟a,實(shí)現(xiàn)計(jì)算并返回表達(dá)式的結(jié)果,要求結(jié)果保留2位小數(shù)
#********** Begin *********#
ops=['+','-','*','/']
if op in ops:
s=eval('%d %s %d'%(num_1,op,num_2))
print("%.2f"%s)
#********** End *********#輸出結(jié)果:
30.00
None
即相當(dāng)于:
class Solution:
def solve(self, op, num_1, num_2):
'''
:type op, num_1, num_2: str, int, int
:rtype : Str
'''
#請(qǐng)?jiān)诖颂砑哟a,實(shí)現(xiàn)計(jì)算并返回表達(dá)式的結(jié)果,要求結(jié)果保留2位小數(shù)
#********** Begin *********#
ops=['+','-','*','/']
if op in ops:
s=eval('%d %s %d'%(num_1,op,num_2))
print("%.2f"%s)
return None
#********** End *********#輸出結(jié)果:
30.00
None
沒(méi)有None的代碼為:
class Solution:
def solve(self, op, num_1, num_2):
'''
:type op, num_1, num_2: str, int, int
:rtype : Str
'''
#請(qǐng)?jiān)诖颂砑哟a,實(shí)現(xiàn)計(jì)算并返回表達(dá)式的結(jié)果,要求結(jié)果保留2位小數(shù)
#********** Begin *********#
ops=['+','-','*','/']
if op in ops:
s=eval('%d %s %d'%(num_1,op,num_2))
return ("%.2f"%s)
#********** End *********#輸出結(jié)果:
30.00
pprint打印,輸出結(jié)果多一個(gè)None值
pprint是什么?
pprint是Data Pretty printer的縮寫(xiě),顧名思義就是讓顯示結(jié)果更加美觀。
相較于print而言,pprint打印的數(shù)據(jù)結(jié)構(gòu)更加完整,更加便于閱讀。
尤其是在打印特別長(zhǎng)的數(shù)據(jù)時(shí),print會(huì)在一行打印,對(duì)人類來(lái)說(shuō)幾乎不可讀,而pprint可以分行打印。
當(dāng)使用pprint將數(shù)據(jù)按照指定寬度打印時(shí),多出一個(gè)None值
這也是我的粗心造成的錯(cuò)誤,具體看例子比較明白
這是錯(cuò)誤的用法
import pprint stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni'] pp = pprint.PrettyPrinter(indent=4, width=20) print(pp.pprint(stuff))
顯示結(jié)果
[ 'spam',
'eggs',
'lumberjack',
'knights',
'ni']
None可以看到,后面很明顯地多了一個(gè)None,原因就在于最后一行的print
正確用法是直接使用pp.pprint語(yǔ)句
import pprint stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni'] pp = pprint.PrettyPrinter(indent=4, width=20) pp.pprint(stuff)
這個(gè)時(shí)候結(jié)果也沒(méi)錯(cuò)
[ 'spam',
'eggs',
'lumberjack',
'knights',
'ni']真是在初學(xué)python時(shí)鬧得一個(gè)笑話。pprint本就是為了解決print不便于多行打印結(jié)果的一個(gè)包,一山不容二虎,但上方錯(cuò)誤竟沒(méi)有直接報(bào)錯(cuò)而是輸出None,其中緣由不得而知。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
簡(jiǎn)單介紹Python中的try和finally和with方法
這篇文章主要介紹了Python中的try和finally和with方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
python驗(yàn)證碼識(shí)別實(shí)例代碼
這篇文章主要介紹了python驗(yàn)證碼識(shí)別實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
Python利用Beautiful Soup模塊搜索內(nèi)容詳解
這篇文章主要給大家介紹了python中 Beautiful Soup 模塊的搜索方法函數(shù)。 方法不同類型的過(guò)濾參數(shù)能夠進(jìn)行不同的過(guò)濾,得到想要的結(jié)果。文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03
Python3進(jìn)行表格數(shù)據(jù)處理的示例詳解
數(shù)據(jù)處理是一個(gè)當(dāng)下非常熱門的研究方向,通過(guò)對(duì)于大型實(shí)際場(chǎng)景中的數(shù)據(jù)進(jìn)行建模,可以用于預(yù)測(cè)下一階段可能出現(xiàn)的情況。本文就來(lái)聊聊Python3進(jìn)行表格數(shù)據(jù)處理的相關(guān)操作,需要的可以參考一下2023-03-03
利用Python實(shí)現(xiàn)朋友圈中的九宮格圖片效果
這篇文章主要給大家介紹了關(guān)于利用Python如何實(shí)現(xiàn)朋友圈中九宮格圖片效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Python結(jié)合Redis開(kāi)發(fā)一個(gè)消息訂閱系統(tǒng)
消息訂閱是一種常見(jiàn)的通信模式,用于實(shí)現(xiàn)系統(tǒng)之間的解耦和異步通信,本文將詳細(xì)介紹如何使用Python實(shí)現(xiàn)一個(gè)高效與可靠的消息訂閱系統(tǒng),有需要的可以了解下2025-03-03
跟老齊學(xué)Python之總結(jié)參數(shù)的傳遞
這篇文章主要介紹了Python參數(shù)的傳遞的總結(jié),非常的實(shí)用,有需要的朋友可以參考下2014-10-10
pycharm 更改創(chuàng)建文件默認(rèn)路徑的操作
今天小編就為大家分享一篇pycharm 更改創(chuàng)建文件默認(rèn)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02

