python輸出后面多一個(gè)None問題
python輸出后面多一個(gè)None
python定義函數(shù)時(shí),一般都會(huì)有指定返回值,如果沒有顯式指定返回值,那么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
沒有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的縮寫,顧名思義就是讓顯示結(jié)果更加美觀。
相較于print而言,pprint打印的數(shù)據(jù)結(jié)構(gòu)更加完整,更加便于閱讀。
尤其是在打印特別長(zhǎng)的數(shù)據(jù)時(shí),print會(huì)在一行打印,對(duì)人類來說幾乎不可讀,而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語句
import pprint stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni'] pp = pprint.PrettyPrinter(indent=4, width=20) pp.pprint(stuff)
這個(gè)時(shí)候結(jié)果也沒錯(cuò)
[ 'spam',
'eggs',
'lumberjack',
'knights',
'ni']真是在初學(xué)python時(shí)鬧得一個(gè)笑話。pprint本就是為了解決print不便于多行打印結(jié)果的一個(gè)包,一山不容二虎,但上方錯(cuò)誤竟沒有直接報(bào)錯(cuò)而是輸出None,其中緣由不得而知。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決pycharm編輯區(qū)顯示yaml文件層級(jí)結(jié)構(gòu)遇中文亂碼問題
這篇文章主要介紹了解決pycharm編輯區(qū)顯示yaml文件層級(jí)結(jié)構(gòu)遇中文亂碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python 函數(shù)的缺省參數(shù)使用注意事項(xiàng)分析
這篇文章主要介紹了python 函數(shù)的缺省參數(shù)使用注意事項(xiàng),結(jié)合實(shí)例形式分析了Python函數(shù)缺省參數(shù)的使用方法與操作注意事項(xiàng),需要的朋友可以參考下2019-09-09
探索Python進(jìn)度條魔法解密任務(wù)進(jìn)展新玩法
在日常編程和應(yīng)用開發(fā)中,展示進(jìn)度條是一種常見的技巧,不僅能夠提供用戶友好的體驗(yàn),還可以顯示任務(wù)執(zhí)行的進(jìn)度,Python作為一種多才多藝的編程語言,提供了多種方法來創(chuàng)建進(jìn)度條,本篇文章將深入探討這些方法,為您呈現(xiàn)各種實(shí)現(xiàn)進(jìn)度條的技術(shù)和技巧2024-01-01

