python - 为什么在交互式 Python 中键入 None 什么也不打印?
问题描述
当python
以交互方式启动时,它将评估表达式,[]
并打印转换为字符串的结果或执行语句,如i = 1
. 由于语句没有值,如果它们不向终端写入任何内容,则不会打印任何内容。但是,当我键入None
表达式时,Python 什么也不打印,甚至'None'
. 乍一看,我以为repr(None)
会返回一个空字符串,但我错了。那么为什么 PythonNone
不打印任何东西来制作一个特殊情况呢?
>>> None
>>>
>>> repr(None)
'None'
>>> str(None)
'None'
解决方案
在交互模式下,任何表达式语句的结果仅在它不是时才被打印None
。此行为在doc中进行了描述。
表达式语句用于(主要是交互地)计算和写入一个值 [...]
在交互模式下,如果值不是
None
,则使用内置repr()
函数将其转换为字符串,并将生成的字符串写入标准输出
原因是大多数有副作用的函数 return None
。None
在控制台中发送垃圾邮件会很烦人。
>>> lst.append(1)
None
>>> lst.append(2)
None
>>> lst.append(3)
None
>>> print('Please stop...')
Please stop...
None
推荐阅读
- python - 在字典中找到一个不存在的词来给它一个值
- typescript - 通用静态类方法
- c - 由于 SIGTRAP 导致应用程序崩溃,同时执行 libc.so 代码
- javascript - ReferenceError:未定义不和谐客户端
- audio-streaming - 对第二个流的 Darkice 配置 - 密码无效
- ffmpeg - 如何将任何 mp4 转换为 adv8dvbt23.ts 文件?
- scheme - 从 a 到 b 的所有整数的总和,我的代码有什么问题?
- android - Android-studio: gradle 抛出 app:mergeDebugResources failed 错误。AAPT2 aapt2-3.3.1-5013011-linux 守护进程启动失败
- haskell - OverloadedStrings 语言扩展是如何工作的?
- html - CSS改变整个网站的边距,有没有办法覆盖它?