当前位置: 代码网 > it编程>前端脚本>Python > python输出后面多一个None问题

python输出后面多一个None问题

2024年11月26日 Python 我要评论
python输出后面多一个nonepython定义函数时,一般都会有指定返回值,如果没有显式指定返回值,那么python就会默认返回值为none例:输入:* 5 6class solution:def

python输出后面多一个none

python定义函数时,一般都会有指定返回值,如果没有显式指定返回值,那么python就会默认返回值为none

例:输入:* 5 6

class solution:
	def solve(self, op, num_1, num_2):
		'''
		:type op, num_1, num_2: str, int, int
		:rtype : str
		'''
		#请在此添加代码,实现计算并返回表达式的结果,要求结果保留2位小数
		#********** begin *********#
        ops=['+','-','*','/']
        if op in ops:
            s=eval('%d %s %d'%(num_1,op,num_2))
            print("%.2f"%s)
		#********** end *********#

输出结果:

30.00
none

即相当于:

class solution:
	def solve(self, op, num_1, num_2):
		'''
		:type op, num_1, num_2: str, int, int
		:rtype : str
		'''
		#请在此添加代码,实现计算并返回表达式的结果,要求结果保留2位小数
		#********** begin *********#
        ops=['+','-','*','/']
        if op in ops:
            s=eval('%d %s %d'%(num_1,op,num_2))
            print("%.2f"%s)
            return none
		#********** end *********#

输出结果:

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
		'''
		#请在此添加代码,实现计算并返回表达式的结果,要求结果保留2位小数
		#********** begin *********#
        ops=['+','-','*','/']
        if op in ops:
            s=eval('%d %s %d'%(num_1,op,num_2))
            return ("%.2f"%s)
		#********** end *********#

输出结果:

30.00

pprint打印,输出结果多一个none值

pprint是什么?

pprint是data pretty printer的缩写,顾名思义就是让显示结果更加美观。

相较于print而言,pprint打印的数据结构更加完整,更加便于阅读。

尤其是在打印特别长的数据时,print会在一行打印,对人类来说几乎不可读,而pprint可以分行打印。

当使用pprint将数据按照指定宽度打印时,多出一个none值

这也是我的粗心造成的错误,具体看例子比较明白

这是错误的用法

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']

pp = pprint.prettyprinter(indent=4, width=20)

print(pp.pprint(stuff))

显示结果

[   '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)

这个时候结果也没错

[   'spam',
    'eggs',
    'lumberjack',
    'knights',
    'ni']

真是在初学python时闹得一个笑话。pprint本就是为了解决print不便于多行打印结果的一个包,一山不容二虎,但上方错误竟没有直接报错而是输出none,其中缘由不得而知。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com