python3的print内置函数详解

154 阅读1分钟

print详解

image.png

1. print作用

Print *objects* to the text stream *file*, separated by *sep* and followed by *end*.

  • 这是官方的定义
  • 翻译成人话就是:print是对传入的参数先通过类似str()函数去转成字符串,然后根据分隔符和结尾字符,拼接成一个字符串,然后输出到text stream
  • 也就是说print不止是能输出到控制台,还能通过传入file参数去指定的某个实现了write方法的对象,然后去输出到比如文件等的地方
  • flush的作用是什么呢?控制output是否立刻刷新到file里,这里的file是指传入的参数,不是指一般的文件,一般刷新到file里是等缓冲区满了再刷,这样性能好点。如果指定了flushTrue,则调用一次print就会刷新一次

2. print例子

import sys

# print函数官方文档:https://docs.python.org/3/library/functions.html#print
# 打印输入参数列表
print('sys.argv:', sys.argv)
if len(sys.argv) > 1:
    # 方法一
    print('Hi, ', sys.argv[1], '. How are you?', sep='')

    # 方法二
    print('Hi, ', end='')
    print(sys.argv[1], end='')
    print('. How are you?', end='')
else:
    print('请在文件名后输入一个参数')

3. print一些讨论

  • 根据print官方的说法来看
  • 执行print('hello,world')实际上应该和sys.stdout.write('hello,world\n')一样
  • 但是控制台的输出为什么不一样呢

image.png

  • 原因很简单:就是因为sys.stdout.write方法实际上是有返回值的,如果写成下方这样就不会有问题了

image.png

  • 如果还有疑惑,欢迎一起讨论