print函数参数详解以及三种输出方式
优点:在简单练习中,表达比较直观,易于掌握。缺点:随着参数数量的增加,格式输入会逐渐变得繁琐。优点:可以根据编号设置单个参数多次输出,填充方式比较灵活。缺点:随着参数数量的增加,输入长度会逐渐增加,当有大量参数时,同样比较繁琐。优点:格式化的方式较前两种更加直观,效率也较前两个高一些。缺点:新的格式化方式,有些语句格式较前两种复杂。...
Print函数的三种输出方式
print函数基本用法
格式:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
参数:
value(s):任意值,可将内容在打印前转化为字符串。
sep=’separator’ :这是一个可选参数,用来指定分隔的对象,默认情况下 为:’’。
end=’end’: 这是一个可选参数,用来指定在结尾打印内容。
file : 这是一个可选对象,具有写方法的对象。
flush : 这也是可选对象,指定输出是刷新(True)还是缓冲(False),默认值为:假。
(1) 输出多个对象的值,改变多个值之间的分隔符
>>> print(1,2,3,4)
1 2 3 4
>>> print(1,2,3,4,sep=" ")
1 2 3 4
>>> print(1,2,3,4,sep="- ")
1- 2- 3- 4
(2)在循环内输出多个值,不换行
>>> for i in range(5):
print(i, end=',')
0,1,2,3,4,
>>> for i in range(5):
print(i, end=':')
0:1:2:3:4:
(3) ⭐️结果输出到文件
# 在当前文件夹创建文件test.txt,并写入内容
>>> with open('test.txt', 'w') as fp:
print('Hello world', file=fp)
上面的语句等价于:
fp=open('test.txt','w')
#此时并没有真正把内容写入文件,而是写入了缓冲区
print('Hello world', file=fp)
#关闭文件,把缓冲区里的内容写入文件
fp.close()
(4) 强制把缓冲区的内容写入文件
这里用到了flush参数,看下示例:
>>> fp = open('test.txt', 'w')
# 强制把缓冲区里的内容写入文件
# 不用关闭文件即可写入
>>> print('Hello world', file=fp, flush=True)
>>> fp.close()
1 占位符%输出
声明三个变量:姓名(string)、年龄(int)、身高(float),见下方的一个简单实例。
>>> name = '小明'
>>> age = 20
>>> height = 1.85
>>> print("我是"+name+",年龄"+str(age))
我是小明,年龄20
>>> print("我是%s,年龄%d,体重%fm"%(name,age,height))
我是小明,年龄20,体重1.850000m
其中%s、%d便是占位符,顾名思义,其作用就是替后面的变量站住这个位置,
字符串后面的%是一个特殊的操作符,该操作符会将后面的变量值,替换掉前面字符串中的占位符.
常用占位符:
- %c,格式化字符及其ASCII码
- %s,格式化字符串
- %d,格式化整数
- %u,格式化无符号整数
- %o,格式化无符号八进制数
宽度、对齐、精度
# 数值型
>>> pi = 3.1415926
>>> print('%10.3f' % pi)
3.142
# 宽度为10,右对齐,保留3位小数点
>>> print('%-10.10f' % pi)
3.1415926000
# 宽度为10,左对齐,保留小数点后10位(不足10位补0)
# 字符串
>>> print( "%.10s " % name)
小明
# 输出10个字符,如果不足,输出全部
>>> print ("%.*s" % (6,name))
小明
# 左对齐,取6个字符
>>> print ("%10.6s" % name)
小明
# 右对齐,宽度为10,取6个字符
2 format格式化
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能,见下方简单示例。
>>> name = '小明'
>>> age = 20
>>> height = 1.85
>>> print("我是{},年龄{},体重{}".format(name,age,height))
我是小明,年龄20,体重1.85
也可以通过指定位置编号操作,顺序从0开始,通过运行下方示例可以发现位置指定的作用。
>>> name = '小明'
>>> age = 20
>>> height = 1.85
>>> print("我是{0},年龄{1},体重{2}".format(name,age,height))
我是小明,年龄20,体重1.85
>>> print("我是{1},年龄{2},体重{0}".format(name,age,height))
我是20,年龄1.85,体重小明
宽度、对齐、精度
- 居中^
- 左对齐<
- 右对齐>
精度也是通过.来实现
>>> pi = 3.1415926
>>> print('{:>10.3f}'.format(pi))
3.142
>>> # 宽度为10,右对齐,保留3位小数点
>>> print('{:<10.1f}'.format(pi))
3.1
>>> # 宽度为10,左对齐,保留1位小数点
3f-String格式化
f-string格式化是python3.6引入了一种新的字符串格式化方式。
变量名直接做参数,比如name, age, height,注意不需要单引号或双引号,见下方示例。
>>> name = '小明'
>>> age = 20
>>> height = 1.85
>>> print(f'我是:{name}, 年龄:{age}, 身高:{height}m')
我是:小明, 年龄:20, 身高:1.85m
3.1 表达式参数
可以是直接的数值运算,也可以是变量赋值后运算。
>>> print(f'计算结果是:{2*5 + 3*4}')
计算结果是:22
>>> a = 90
>>> b = 9
>>> print(f'计算结果是:{a*b + a + b}')
计算结果是:909
3.2 宽度、对齐、精度
宽度为10,精度为小数点后2、3、4位,居中、居右、居左对齐,填充方式和format一样可以选择不同的字符。
>>> pi = 3.1415926
>>> print(f'{pi:^10.2f}')
3.14
>>> print(f'{pi:>10.3f}')
3.142
>>> print(f'{pi:<10.4f}')
3.1416
4 总结
%(占位符):
- 优点:在简单练习中,表达比较直观,易于掌握。
- 缺点:随着参数数量的增加,格式输入会逐渐变得繁琐。
format:
- 优点:可以根据编号设置单个参数多次输出,填充方式比较灵活。
- 缺点:随着参数数量的增加,输入长度会逐渐增加,当有大量参数时,同样比较繁琐。
f-string:
- 优点:格式化的方式较前两种更加直观,效率也较前两个高一些。
- 缺点:新的格式化方式,有些语句格式较前两种复杂
更多推荐
所有评论(0)