Python字符串的格式化

字符串的格式化

如何输出格式化的一串字符串。我们经常需要输出类似++尊敬的XXX您好!你的电费余额为XXX,请及时续交电费。++之类的一句话,而xxx的内容都是需要随时变化得,由此我们需要一种简便的格式化字符串的方式。

在Python中,采用的格式化方式和C语言是一致,用%实现:

python 复制代码
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d billion dollars.' % ('Michael', 99999)
'Hi, Michael, you have $99999 billion dollars.'

%运算符用来格式化字符串。%s表示用字符串替换,%d表示用整数替换,有几个%占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%,括号可以省略。

常见的占位符有:

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

python 复制代码
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)

如果不确定应该用什么,%s会把任何数据类型转换为字符串:

python 复制代码
>>> 'Name: %s. Age: %s' % (Ken, 15)
'Name: Ken. Age: 15'

format()格式化

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}......,这种方式写起来比%要复杂一些:

plain 复制代码
>>> 'Hello, {0}, 你的身高是 {1:.1f}%'cm.format('李磊', 175)
'Hello, 李磊, 你的身高是175cm.%'

f-string格式化

还有一种格式化字符串的方法是使用以f-string,它和普通字符串不同之处在于,字符串如果包含{xxx},就会以对应的变量替换:

plain 复制代码
>>> r = 2.5
>>> s = 3.14 * r ** 2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62

{r}被变量r的值替换,{s:.2f}被变量s的值替换,并且:后面的.2f指定了格式化参数(即保留两位小数),因此,{s:.2f}的替换结果是19.62。

相关推荐
晗夜未央1 分钟前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
熊猫钓鱼>_>4 分钟前
四种书签,一条时间线:一个读书 App 的记忆颗粒与它的边界案例【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙pc
努力努力再努力wz39 分钟前
【Lua 入门系列】Lua 函数深入理解:函数对象、多返回值、可变参数、闭包、递归与尾调用优化
开发语言·lua
Patrick在香港43 分钟前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
2601_967980111 小时前
Python 初学者必备的常用内置函数
python·编程语言·内置函数·初学者·常用函数
OnlineProxy1 小时前
移动应用数据爬取:通过模拟器与流量嗅探对 API 进行逆向工程
爬虫·python·httpx
染指11101 小时前
162.Agent-LangGraph-检查点的作用
人工智能·python·langchain·agents
飞浪纪元[FWC–FE]1 小时前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt
Wang's Blog1 小时前
Java 项目实战:交友项目 - 联系人列表
java·开发语言·交友
我命由我123452 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理