python print()函数的end参数和sep参数的用法说明
作者:花落雨微扬 发布时间:2023-11-02 01:01:38
最近在学习python过程中,对print()打印输出函数进行了进一步学习。
python 2.6中,print输出内容需要使用引号。
python 3.0中的print 函数修改引号为括号,即print()
print()函数打印输出默认换行
i=1
while i<10:
print(i)
i+=1
print("循环结束")
#程序运行结果
1
2
3
4
5
6
7
8
9
循环结束
从语法上讲,python 3.0的函数有一下格式:
print([object,…]],sep=' ‘][,end='\n'][,file=sys.stdout])
注意:
1、[ ]中的项是可选的
2、=后面的值都是默认参数值
file
指定了文本将要发送的文件、标准流或者其他类似文件的对象;如果没有传递的话,它默认的是sys.stdout.
sep
用来分割一个打印输输出文本的多个对象,如果没有传递的话,其默认是一个空格
print('a','b','c','d','e')
#程序运行结果
a b c d e
print('a','b','c','d','e',sep="下一个字母:")
#程序运行结果
a下一个字母:b下一个字母:c下一个字母:d下一个字母:e
end
用来设定打印输出文本的结尾,其默认值是换行符号\n。传递一个空字符串将会避免在打印的文本的末尾移动到下一个输入行——下一个print将会保持添加到当前输出行的末尾。
i=1
while i<10:
print(i,end=" ")
i+=1
print("循环结束")
#程序运行结果
1 2 3 4 5 6 7 8 9 循环结束
可以看到每次print()的打印输出并为换行。
我们接下来再通过两段代码学习end参数的作用
代码一:设定end=" ",即每次打印输出后一空格结尾
i=1
print("九九乘法表")
while i<10:
j=1
while j<=i:
print("{}*{}={}".format(i,j,i*j),end="")#打印输出后以空格结尾
j+=1
print() #未设定end参数,默认end="\n"
i+=1
print("乘法表结束")
代码二:未设定end参数,默认end="\n",每次打印输出后换行
i=1
print("九九乘法表")
while i<10:
j=1
while j<=i:
print("{}*{}={}".format(i,j,i*j))#默认end="\n"
j+=1
print()
i+=1
print("乘法表结束")
#程序运行结果
九九乘法表
1*1=1
2*1=2
2*2=4
3*1=3
3*2=6
3*3=9
4*1=4
4*2=8
4*3=12
4*4=16
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
8*1=8
8*2=16
8*3=24
8*4=32
8*5=40
8*6=48
8*7=56
8*8=64
9*1=9
9*2=18
9*3=27
9*4=36
9*5=45
9*6=54
9*7=63
9*8=72
9*9=81
乘法表结束
从以上两段代码运行结果对比,我们可以清楚的认识到print()打印输出函数中end参数的作用。
补充:Python函数print()参数end的坑和解决方法
Python内置函数print()的语法为:
虽然sep参数和file参数也有很重要的用途,但是没啥坑,常规使用即可,本文重点介绍end和flush。使用print()函数输出完给定的值之后,默认以换行结束,例如:
如果想让这样循环输出的内容显示在同一行中,可以修改print()函数的参数end,指定为不包含换行符和回车符的字符串,例如:
但是,这个用法是会带来一个隐藏的坑。
函数print()并不是直接把内容输出到屏幕(file参数为默认值时),而是先输出到缓冲区,等缓冲区满了或者程序运行结束之后再刷新到屏幕上,除非采用其他措施强制刷新并清空缓冲区(或者输出流)。
下面的这个程序,本意是每隔0.5秒输出一个圆点来模拟动态进度条效果的过程,在IDLE中、Spyder中运行不会有问题。然而在PyCharm和cmd中并没有实现这个动画的效果,而是等了5秒钟以后忽地一下子输出了所有的内容。
正如刚才所说,如果有其他措施能强制刷新并清空缓存,就可以避免这个问题了,一种方法是使用print()函数的flush参数,一种方法是调用sys.stdout.flush()函数。
除了这两种方式之外,如果在输出的内容中有回车符\r,也会立刻输出到屏幕,从而间接实现上面的效果。但是这样会覆盖本行已经输出的内容,使用时要注意。
来源:https://blog.csdn.net/qq_43636375/article/details/104105382


猜你喜欢
- 常用时间转换及处理函数:import datetime# 获取当前时间d1 = datetime.datetime.now()print d
- 准备导入的excel为: 可以采用pandas的read_excel功能,具体代码如下:import pandas as pdge
- 一、连接MYSQL:格式: mysql -h主机地址 -u用户名 -p用户密码1、例1:连接到本机上的MYSQL。首先在打开DOS窗口,然后
- 在python中我们可以使用speech模块让计算机进行语音输出,我们需要使用如下代码安装该模块。对于如何在终端中安装python相应模块,
- 毫无疑问,我们生活在编辑器的最好年代,Vim是仅在Vi之下的神级编辑器,而脱胎于Vim的NeoVim则是这个时代最好的编辑器,没有之一。异步
- 运行多进程 每个子进程的内存空间是互相隔离的 进程之间数据不能共享的互斥锁但是进程之间都是运行在一个操作系统上,进程之间数据不共享,但是共享
- 一、读取配置文件我的目录如下,在config下有一个config.ini配置文件配置文件内容# 定义config分组[config]plat
- 这三种情况下所得到的server.MapPath是一致的,这就导致上传之后写入数据库的图片地址和实际图片存储地址不一致,因此,我们需要自定义
- 一、代理模式代理模式,为其他对象提供一种代理,以此控制一个对象的访问方式。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象
- 本文实例分析了Python类属性与实例属性用法。分享给大家供大家参考。具体如下:类属性:类名.属性名 实例属性:实例.属性名>
- 正则表达式正则表达用来匹配字符串正则表达式匹配过程依次拿出表达式和文本中的字符串进行比价如果每个字符都能匹配,则匹配成功;一旦有匹配不成功的
- 那是一杠还是两杠呢?最简单的方式就是拿出钱包,掏出张“新”的50或100,翻到背面的银线上,就会发现两杠的符号。这个是以前跟同事在讨论是一杠
- Python提取html中文本到txt正则去标签方式# -*- coding: utf-8 -*-import redef html_tag
- 决策树原理:从数据集中找出决定性的特征对数据集进行迭代划分,直到某个分支下的数据都属于同一类型,或者已经遍历了所有划分数据集的特征,停止决策
- MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发。可是数据量到了
- 本文实例讲述了Python基于聚类算法实现密度聚类(DBSCAN)计算。分享给大家供大家参考,具体如下:算法思想基于密度的聚类算法从样本密度
- 本文实例讲述了js判断手机和pc端选择不同执行事件的方法。分享给大家供大家参考。具体如下:判断是否为手机:function isMobile
- 一、实验目的:1.掌握Python中柱状图、条形图绘图函数的使用2.利用上述绘图函数实现数据可视化二、实验内容:1.练习python中柱状图
- 这篇文章主要介绍了基于Python获取照片的GPS位置信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- (&,|)和(and,or)是两组比较相似的运算符,用在“与”/ “或”上,在用法上有些许区别。 (&,|)和(and,or