python输出后面多一个None问题

 更新时间:2024年11月25日 11:42:59   作者:别是个逗比吧  
在Python中,函数如果没有显式指定返回值,会默认返回`None`,例如,计算一个数的平方根并输出,如果没有处理`None`,会输出结果后跟`None`

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,其中缘由不得而知。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • LyScript实现Hook隐藏调试器的方法详解

    LyScript实现Hook隐藏调试器的方法详解

    LyScript 插件集成的内置API函数可灵活的实现绕过各类反调试保护机制。本文将运用LyScript实现绕过大多数通用调试机制,实现隐藏调试器的目的,需要的可以参考一下
    2022-09-09
  • python使用PyCharm进行远程开发和调试

    python使用PyCharm进行远程开发和调试

    这篇文章主要介绍了python使用PyCharm进行远程开发和调试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Python加pyGame实现的简单拼图游戏实例

    Python加pyGame实现的简单拼图游戏实例

    这篇文章主要介绍了Python加pyGame实现的简单拼图游戏,以一个完整实例形式分析了pyGame模块操作图片的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 使用Python脚本备份华为交换机的配置信息

    使用Python脚本备份华为交换机的配置信息

    在现代网络管理中,备份交换机的配置信息是一项至关重要的任务,备份可以确保在交换机发生故障或配置错误时,能够迅速恢复到之前的工作状态,本文将详细介绍如何使用Python脚本备份华为交换机的配置信息,需要的朋友可以参考下
    2024-06-06
  • Python 中Pickle库的使用详解

    Python 中Pickle库的使用详解

    pickle是python语言的一个标准模块,安装python后已包含pickle库,不需要单独再安装。这篇文章主要介绍了Python 中Pickle库的使用详解,需要的朋友可以参考下
    2018-02-02
  • Django在Model保存前记录日志实例

    Django在Model保存前记录日志实例

    这篇文章主要介绍了Django在Model保存前记录日志实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 利用Pygame绘制圆环的示例代码

    利用Pygame绘制圆环的示例代码

    这篇文章主要介绍了利用Python中的Pygame模块绘制一个彩色的圆环,文中的示例代码讲解详细,对我们学习Pygame有一定帮助,需要的可以参考一下
    2022-01-01
  • Pandas0.25来了千万别错过这10大好用的新功能

    Pandas0.25来了千万别错过这10大好用的新功能

    这篇文章主要介绍了Pandas0.25来了千万别错过这10大好用的新功能,都有哪些新功能,文中给大家详细介绍,需要的朋友可以参考下
    2019-08-08
  • python 获取文件列表(或是目录例表)

    python 获取文件列表(或是目录例表)

    在python的应用过程中,经常会用到获取文件列表的方法,常规的做法是这样的
    2009-03-03
  • python数据结构之列表和元组的详解

    python数据结构之列表和元组的详解

    这篇文章主要介绍了python数据结构之列表和元组的详解的相关资料,希望通过本文能帮助到大家,让大家彻底理解掌握这部分内容,需要的朋友可以参考下
    2017-09-09

最新评论