Python字符串格式化

1.%

基本格式化操作

name = "hello"
age = 18
text = "我是%s,今年%d" %(name,age)
# 我叫hello,今年18

当只有一个占位符的时候在%后可以是一个具体的值,或者是一个变量,当有多个的时候可以将值写入一个元组中,编译器会根据所写的顺序以及占位符的顺序进行一一匹配。

massage = "我叫%(name)s" % {"name": "hello"}
# 我叫hello

当%s中写入一个变量名时,需要用字典进行对应。

PS%的一个坑:当字符串中出现百分号时系统会将此百分号也会当做占位符,这种情况下一定在加%%以实现输出%

text = "这个%s我已经下载了90%了" %"内容"
# 会报错,系统会认识90%的%也是占位符,正确在下
text = "这个%s我已经下载了90%%了" %"内容"
# %%表示输出%

常用占位符:

%s字符串占位符
%d整形占位符
%f浮点数占位符

补充:保留几位小数

%.nf,n表示保留n位小数

print('保留2位小数:%.2f'%1.2345)
# 1.23

2.format

通过{}进行占位,在字符串后面加.format(参数),实现字符串的格式化

可以根据参数位置进行匹配实现格式化

text = "我叫{0},今年{1}岁,真实的姓名为{0}".format("hello", 18)
# 我叫hello,今年18岁,真实的姓名为hello(可以进行参数的复用)

在{}中不写参数,会对format中数据依次匹配

text = "我叫{},今年{}岁".format("hello", 18)
# 我叫hello,今年18岁({}中不写数字,无法实现参数的复用)

PS:若占位符数量多余format中的参数,则系统会报错;若占位符数量小于format参数数量,系统会匹配等价于占位符数量的参数,后续参数不会格式化入字符串中

text = "我叫{},今年岁".format("hello", 18)
print(text)
# 我叫hello,今年岁

占位符为{变量名}时需要format参数中的值与其变量名相对应

text = "我叫{n1},今年{n2}岁,真实的姓名为{n1}".format(n1="hello", n2=18)
# 我叫hello,今年18岁,真实的姓名为hello(可以实现参数的复用)

若{}中的变量名在format中无法找到相应的参数名会报错

3.f

在Python3.6后可以使用f进行字符串的格式化

在字符串引号前面加f表示进行字符串的格式化,字符串中{变量名}作为占位符

# python 3.6
name = "hello"
text = f"我叫{name},今年{16+2}岁"
# 我叫hello,今年18岁
# python3.8
text = f"我叫{name},今年{16+2=}岁"
# 我叫hello,今年16+2=18岁

在{变量名}占位符中可以添加内置函数例如

# 使用函数
name = hello
text = f"我是{name.upper()},今年18岁"
# 我是HELLO,今年18岁
# upper 转换为大写

补充:进制的转换

# 讲18转换为2进制
text = f"今年{18:#b}岁"
今年0b10010岁
# 讲18转换为8进制
text = f"今年{18:#o}岁"
今年0o22岁
# 讲18转换为16进制
text = f"今年{18:#x}岁"
今年0x12岁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值