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便是占位符,顾名思义,其作用就是替后面的变量站住这个位置,
字符串后面的%是一个特殊的操作符,该操作符会将后面的变量值,替换掉前面字符串中的占位符.
常用占位符:

  1. %c,格式化字符及其ASCII码
  2. %s,格式化字符串
  3. %d,格式化整数
  4. %u,格式化无符号整数
  5. %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:

  • 优点:格式化的方式较前两种更加直观,效率也较前两个高一些。
  • 缺点:新的格式化方式,有些语句格式较前两种复杂
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐