python print函数详细用法

文章目录

  • 输出变量
  • sep参数
  • end参数
  • file参数
  • flush参数

  先提前说,我这篇文章很水,是我用了很久Python,却发现连最常用的print方法都不熟悉,这个方法竟然还有四个参数!这是我学艺不精了,幸好发现得早。所以我得把这个四个参数都练练,水一篇笔记出来。

输出变量

  python的print函数是输出对象的__str__方法返回的字符串的,为此我写一个类,重载它的__expr__和__str__方法,做个试验:

class NumberPair:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def expr(self):
        return f'{self.a},{self.b}'

    def __str__(self):
        return f'{self.a}-{self.b}'


if __name__ == '__main__':
    x = NumberPair(1, 2)
    print(x)

  输出结果为:

1-2

  从试验结果看,执行的是__str__方法。

sep参数

  修改分隔符,默认是空格,可以改成别的。

# _*_ coding:utf-8 _*_

if __name__ == '__main__':

    print("list", "all", "files", sep="-")

  结果:

list-all-files

end参数

  修改结尾用的,默认是换行,我写了个例子改成空格,就很像java的print了,哈哈:

# _*_ coding:utf-8 _*_

if __name__ == '__main__':

    print("Your", end=" ")
    print("great", end=" ")
    print("puffs", end=" ")
    print("of", end=" ")
    print("flowers", end=" \n")

  结果:

Your great puffs of flowers 

file参数

  当我知道这个参数时我是震惊的。我根本没想到print函数还能这样用:

# _*_ coding:utf-8 _*_

if __name__ == '__main__':
    file = open('x.txt', "w")
    print("You are everywhere.", file=file)
    print("You were everywhere.", file=file)
    file.close()

  文件会自动生成,里面成功写入了内容:

You are everywhere.
You were everywhere.

flush参数

  flash参数在菜鸟教程里是用来做loading效果的。但是我试了,flush为false,也是会出现loading效果的。但是使用文件再单步debug,或者狂加断点就可以知道这个参数的作用!如以下代码:

# _*_ coding:utf-8 _*_

import time

if __name__ == '__main__':
    if __name__ == '__main__':
        file = open('x.txt', "w")
        print("You are everywhere.", file=file, flush=False)
        print(file=file, flush=True, end='')
        print("You were everywhere.", file=file)
        file.close()

  使用PyCharm打开双窗口,如图:
python print函数详细用法_第1张图片
 注意,及时刷新文件,按下图,再鼠标右键菜单中操作:
python print函数详细用法_第2张图片
  就会发现flush参数为false时,文件里是没内容的。执行下一行后,右键加载磁盘后,文件内存才更新了:
python print函数详细用法_第3张图片
  经过了这个小小的debug实验,就深刻理解了flush这个参数的作用了。

你可能感兴趣的:(#,Python,python,lua,pycharm)