python 字符串格式化

本文介绍了Python中字符串格式化的三种方法:%符号格式化、format方法格式化和f-string格式化。详细讲解了每种方法的用法,包括占位符的使用、按名称和位置格式化字符串,并给出了百分比表示的例子。同时,展示了如何处理字符串中的百分比符号以及使用表达式和函数调用。最后,还演示了进制转换的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 使用%

1.1 按位置格式化:

name = 'jack'
age = 18
text = '我是%s, 年龄%s岁' %(name, age)
print(text)
print('我是%s, 年龄%s岁' %('rose', 16))

这里的%s是为字符串占位,而真正为整型占位的是%d,严谨的方式写:text = '我是%s, 年龄%d岁' %(name, age)

1.2 按名称格式化

text = '我是%(name)s, 我叫%(name)s, 年龄:%(age)s岁' %{'name': 'jack', 'age': 12}
print(text)

1.3 需要注意的是

text = '%s的GDP要提升40%' %'中国'
print(text)

上面这段代码会运行出错:

Traceback (most recent call last):
  File "c:\Users\vincent\Desktop\code\neimeng-python\test\test_str.py", line 12, in <module>
    text = '%s的GDP要提升40%' %'中国'
ValueError: incomplete format

因为我们的字符串中出现了多个%,会把%也当做了占位符,因此报错。

解决这种方式的方法就是多写一个%,例如:

text = '%s的GDP要提升40%%' %'中国'
print(text)

因此,一旦字符串中存在百分比的形式,一定要加两个%以实现百分比的效果。

2. format

方式1:

text = '我叫{0}, 今年{1}岁, 我是{0}'.format('tom', 16)
print(text)

方式2:
也可以不写序号,默认则是按位置来取对应的值,但是上面的情况则会报错:

text = '我叫{}, 今年{}岁'.format('tom', 16)
print(text)

方式3:

text = '我叫{name}, 今年{age}岁'.format(name='tom', age=16)
print(text)

可以把上面的字符串赋值给变量,下面这种形式本质上跟上面是一样的。

text = '我叫{name}, 今年{age}岁'
print(text.format(name='tom', age=16))

text = '我是%(name)s, 我叫%(name)s, 年龄:%(age)s岁'
print(text %{'name': 'jack', 'age': 12})

f格式化

Python3.6版本及之后才支持的方式。

name = 'tom'
age = '19'
text = f'我叫{name}, 今年{age}岁'

可以支持表达式:

name = 'jerry'
age = 7
text = f'我叫{name}, 今年{age+1}岁'
print(text)

在Python3.8引入的新功能:

name = 'jerry'
age = 7
text = f'我叫{name}, 今年{age+1 =}岁'
print(text)

输出结果:我叫jerry, 今年age+1=8岁

进制转换:

# 转化为二进制
print(f'今年{22: #b}岁') # 今年 0b10110岁
# 转化为八进制
print(f'今年{22: #o}岁')  # 今年 0o26岁
# 转化为十六进制
print(f'今年{22: #x}岁')  # 今年 0x16岁

可以执行函数:

name = 'jerry'
text = f'我是{name.upper()}'
print(text) # 会把name变成大写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值