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

总结

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

相关文章

  • python跳出双层for循环的解决方法

    python跳出双层for循环的解决方法

    今天小编就为大家分享一篇python跳出双层for循环的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python ORM框架Peewee用法详解

    Python ORM框架Peewee用法详解

    这篇文章主要介绍了Python ORM框架Peewee用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题

    解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题

    这篇文章主要介绍了解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python中pyCirclize包的使用教程详解

    Python中pyCirclize包的使用教程详解

    pyCirclize 是一个 Python 包,用于绘制环形图,这篇文章将将提供更丰富的示例代码,以更全面地展示 pyCirclize 包的功能和用法,感兴趣的小伙伴可以了解一下
    2023-11-11
  • python 函数的缺省参数使用注意事项分析

    python 函数的缺省参数使用注意事项分析

    这篇文章主要介绍了python 函数的缺省参数使用注意事项,结合实例形式分析了Python函数缺省参数的使用方法与操作注意事项,需要的朋友可以参考下
    2019-09-09
  • 探索Python进度条魔法解密任务进展新玩法

    探索Python进度条魔法解密任务进展新玩法

    在日常编程和应用开发中,展示进度条是一种常见的技巧,不仅能够提供用户友好的体验,还可以显示任务执行的进度,Python作为一种多才多艺的编程语言,提供了多种方法来创建进度条,本篇文章将深入探讨这些方法,为您呈现各种实现进度条的技术和技巧
    2024-01-01
  • Pandas中inf值替换的方法

    Pandas中inf值替换的方法

    本文主要介绍了Pandas中inf值替换的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Anaconda环境变量的配置图文详解

    Anaconda环境变量的配置图文详解

    Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,下面这篇文章主要给大家介绍了关于Anaconda环境变量配置的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • python之json格式解析与转换方式

    python之json格式解析与转换方式

    使用Python的内置json库可以实现JSON和Python对象的互相转换,有效的JSON格式字符串是指使用双引号、键唯一且没有尾随逗号的字符串,json.loads()用于将JSON字符串转换为Python对象,json.dumps()则将Python对象转化为JSON字符串
    2024-09-09
  • 教你使用Python获取QQ音乐某个歌手的歌单

    教你使用Python获取QQ音乐某个歌手的歌单

    这篇文章主要介绍了Python获取QQ音乐某个歌手的歌单,从qq音乐中获取某个你喜欢的歌手的清单,涉及到的库有requests、json,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04

最新评论