python輸出后面多一個None問題
python輸出后面多一個None
python定義函數(shù)時,一般都會有指定返回值,如果沒有顯式指定返回值,那么python就會默認(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 ''' #請在此添加代碼,實現(xiàn)計算并返回表達(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 ''' #請在此添加代碼,實現(xiàn)計算并返回表達(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
沒有None的代碼為:
class Solution: def solve(self, op, num_1, num_2): ''' :type op, num_1, num_2: str, int, int :rtype : Str ''' #請在此添加代碼,實現(xiàn)計算并返回表達(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é)果多一個None值
pprint是什么?
pprint是Data Pretty printer的縮寫,顧名思義就是讓顯示結(jié)果更加美觀。
相較于print而言,pprint打印的數(shù)據(jù)結(jié)構(gòu)更加完整,更加便于閱讀。
尤其是在打印特別長的數(shù)據(jù)時,print會在一行打印,對人類來說幾乎不可讀,而pprint可以分行打印。
當(dāng)使用pprint將數(shù)據(jù)按照指定寬度打印時,多出一個None值
這也是我的粗心造成的錯誤,具體看例子比較明白
這是錯誤的用法
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
可以看到,后面很明顯地多了一個None,原因就在于最后一行的print
正確用法是直接使用pp.pprint語句
import pprint stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni'] pp = pprint.PrettyPrinter(indent=4, width=20) pp.pprint(stuff)
這個時候結(jié)果也沒錯
[ 'spam', 'eggs', 'lumberjack', 'knights', 'ni']
真是在初學(xué)python時鬧得一個笑話。pprint本就是為了解決print不便于多行打印結(jié)果的一個包,一山不容二虎,但上方錯誤竟沒有直接報錯而是輸出None,其中緣由不得而知。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
簡單介紹Python中的try和finally和with方法
這篇文章主要介紹了Python中的try和finally和with方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識,需要的朋友可以參考下2015-05-05Python利用Beautiful Soup模塊搜索內(nèi)容詳解
這篇文章主要給大家介紹了python中 Beautiful Soup 模塊的搜索方法函數(shù)。 方法不同類型的過濾參數(shù)能夠進行不同的過濾,得到想要的結(jié)果。文中介紹的非常詳細(xì),對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03Python結(jié)合Redis開發(fā)一個消息訂閱系統(tǒng)
消息訂閱是一種常見的通信模式,用于實現(xiàn)系統(tǒng)之間的解耦和異步通信,本文將詳細(xì)介紹如何使用Python實現(xiàn)一個高效與可靠的消息訂閱系統(tǒng),有需要的可以了解下2025-03-03跟老齊學(xué)Python之總結(jié)參數(shù)的傳遞
這篇文章主要介紹了Python參數(shù)的傳遞的總結(jié),非常的實用,有需要的朋友可以參考下2014-10-10pycharm 更改創(chuàng)建文件默認(rèn)路徑的操作
今天小編就為大家分享一篇pycharm 更改創(chuàng)建文件默認(rèn)路徑的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02