编程小白Python的三种格式化输出学习小结

一、占位符%格式化输出

1.作用

在输出字符串是用占位符%和一个变量的代号来占位。

2.数据类型代号表格

数据类型代号含义
%s格式化字符串
%c格式化字符及ASCII码
%d格式化有符号整数
%f格式化浮点数,可以指定小数点后的位数,如%.2f
%i格式化有符号整数,老式写法
%u格式化无符号整数
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%e科学计数法格式化浮点数
%E同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f和%E的简写
%p用十六进制数格式化变量的地址

3.基本语法实例

变量名数据类型要与前面占位符号一一对应

name = "编程小白"
time = 150
feeling = "happy"
print("我是%s。"% name)
print("我是%s。"% (name,))
print("我是%s,我已经学习Python%d天了。"%(name, time))  
print("我是%s,我已经学习Python%d天了,学习使我%s。"%(name, time, feeling)) #

输出结果为:

我是编程小白。
我是编程小白。
我是编程小白,我已经学习Python150天了。
我是编程小白,我已经学习Python150天了,学习使我happy。

当变量名与占位符类型不匹配时会报错

name = "编程小白"
time = 150
feeling = "happy"
print("我是%s,我已经学习Python%d天了,学习使我%s。"%(time, name, feeling))

输出结果为:

    print("我是%s,我已经学习Python%d天了,学习使我%s。"%(time, name, feeling))
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TypeError: %d format: a real number is required, not str #%d 格式:需要实数,而不是 str

二、format方法格式化输出

1.基本语法及实例

name = "编程小白"
time = 150
feeling = "happy"
print("我是{}。".format(name))
print("我是{x}。".format(x = name)) #创建变量传参
print("我是{0},我已经学习Python{1}天了。".format(name, time))
print("我是{2},我已经学习Python{0}天了,学习使我{1}。".format(time, feeling, name)) #使用下标索引传参
print("我是{},我已经学习Python{}天了,学习使我{}。".format(name, time, feeling))  #默认位置与前面的占位符{}一一对应

输出结果为:

我是编程小白。
我是编程小白。
我是编程小白,我已经学习Python150天了。
我是编程小白,我已经学习Python150天了,学习使我happy。
我是编程小白,我已经学习Python150天了,学习使我happy。

2.format()方法格式化

样式{<参数序号>:<格式控制标记>}

:<填充><对齐><宽度><,><.精度><类型>
引导符号用于填充的单个字符'<‘左对齐 ,’>‘右对齐,’^'中间对齐槽的设定输出宽度数字的千位分隔符适用于整数和浮点数浮点数小数部分的精度或字符串的最大输出长度整数类型b,c,d,o,x,X浮点数类型e,E,f,%

实例操作
符号做填充,居中对齐,字符宽度为30*

name = "编程小白"
print("我是{0:*^30}".format(name,))

输出结果为:

我是*************编程小白*************

输出的数字保留两位小数的浮点数

time = 150
print("我学习Python{0:.2f}天了。".format(time))

输出结果为:

我学习Python150.00天了。

3.注意

注意:当格式化的字符宽度小于实际字符串宽度,以实际字符串宽度输出;当格式化字符串宽度大于实际字符串宽度默认情况下在左边补空格键
例:
格式化字符串宽度大于实际字符串宽度

time = 150
print("我学习Python{0:10}天了。".format(time))

输出结果为:

我学习Python       150天了。#数字左边补充了空格

格式化的字符宽度小于实际字符串宽度

time = 150
print("我学习Python{0:1}天了。".format(time))

输出结果为:

我学习Python150天了。

此处还有很多比较有趣的细节,值得各位码友自己去慢慢尝试,欢迎在评论区留言。

三、f-string格式化输出

1.基本语法与实例

name = "编程小白"
time = 150
feeling = "happy"
print(f"我是{name}。")
print(f"我是{name},我已经学习Python{time}天了。")
print(f"我是{name},我已经学习Python{time}天了,学习使我{feeling}。")

输出结果为:

我是编程小白。
我是编程小白,我已经学习Python150天了。
我是编程小白,我已经学习Python150天了,学习使我happy。

f-string的便利之处

  • 相比于占位符格式化,f-string使用花括号加变量的方式,更加容易理解可读性更强。
  • 由于f-string直接使用到了变量进行标记,所以可以不用关心变量占位的顺序,避免了可能的顺序错乱的问题。
  • f-string在花括号中可以使用可执行的程序语句,这使得在格式化占位时更加灵活方便。
  • Python版本在3.6以上,推荐多使用f-string这种新的字符串格式化方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值