本文以Python3以上为学习基础。

目录

1、常规输出

2、print()函数

(1)参数1:*objects -- 对象

(2)参数2:sep -- 用来间隔多个对象

(3)参数3:end -- 用来设定以什么结尾。

(4) 参数4:file -- 要写入的文件对象。

(5) 参数5:flush -- 输出是否被缓存。


print:输出语句

print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。

1、常规输出

常规输出很简单就只:print(变量名)。

既然print() 是一个函数,那么肯定对应的函数定义。

以下是 print() 函数的定义:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • objects -- 对象,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file -- 要写入的文件对象。
  • flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

 以上是print()函数的语法和参数详解,是来自菜鸟教程

2、print()函数

下面我们分别对各个参数进行尝试:

(1)参数1:*objects -- 对象

表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔

也就是说打印多个对象。

上面例子,同时打印 tmp 和 tmp1。可以看到同时打印出来,中间是空格分割。

为什么是空格分割?

这和下面的第二个参数有关。

(2)参数2:sep -- 用来间隔多个对象

默认值是一个空格。

因此,如果我们变更多个对象的间隔方式。

 可以看到这时候我们设置自定义的多对象间隔是 $。结果输出就发生改变。


这时候我们把两个变量分开输出。 

我们发现两个变量的结果换行了。但是我们在输出tmp变量后面没有设置换行符。

为什么还换行了,结果不应该是12依次一排输出吗?

因为它和第三个参数有关。

(3)参数3:end -- 用来设定以什么结尾。

默认值是换行符 \n,我们可以换成其他字符串。

可以看到默认变量结尾换行符。

上面例子,我们自定义结果 tmp 结尾是 $和换行符。

因此结果中在 1 的后面跟着 $和换行符。2 对应换行输出。


我们输出变量都是对应的显示在编辑器的输出位置。

如果我们需要把某些变量输出到文件中呢?比如你通过打印 log 的方式调试代码。

这时候和第四个参数有关。

(4) 参数4:file -- 要写入的文件对象。

 这时候看到出现了错误,意思是没有写权限。

而且提示这个对象是str(字符串)。

这样就很明显不对。我们要的是文件。不是字符串。

原因其实很简单:我们平时使用使用文件的时候,第一步就是打开文件。同样的道理,我们程序也要打开文件。

因此使用open()函数先打开文件。(open函数的用法后续介绍)

 可以看到我们用open函数打开函数给了f。这里的f是文件句柄。这个也后续说。

注意打开文件一定要再close文件。否则就会造成文件句柄泄露。

可能你听不懂。我们做个验证。

 这个就是我创建好的文件。

当前的文件内容是空的。

下面我们执行下面的代码。

注意:我只是打开了文件,没有关闭文件。

 为了方便查看。加了一个代码执行结束的提示。

下面我们查看zxc.txt文件的内容。

我们成功输出结果:1 2$

我们下面试着手动修改以下文件。

看到没有,我们的文件被占用。但是是什么占用了呢?

我们利用Windows的资源监视器看看。

 很明显,python占用这个文件。原因就是我们使用open函数带开了这个文件。没有关闭,这个文件一直被占用。

因此我们在使用open函数的时候一定要close文件。否则你一直开着它,就算你不懂也应该能想到一定有问题。具体情况后续介绍。

我们现在知道要close到文件了,但是怎么做呢?我们试试看。

 利用前面的文件句柄 f 进行close。

这时候我们使用Windows的资源监视器看看这个文件的相关进程。

 结果很明显。文件相关进程结束了。

(5) 参数5:flush -- 输出是否被缓存。

 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

我们试试看。

我们利用for循环来循环打印数字1到9。但是我们是一个一个打印。就先出现数字1,过一会再出现数字2。

我们先看看没有flush的正常情况。

 很明显,这根本就不是按着123……的顺序依次打印出来的,1和2是同时出现的。

下面我们加上flush参数看看。

可以看到很明显,123……依次打印。(可能有点快,麻烦仔细看看可以看出来)


以上就是关于print函数的五个参数详解。

如果有错误请及时指出。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐