Python格式化字符串

liftword3个月前 (03-09)技术文章20

在 Python 中,其采用的部分格式化方式与 C 语言保持一致,通过 “%” 来实现,示例如下:

print('Hello, %s' % 'world')
print('Hi, %s, you have $%d.' % ('Michael', 1000000))

不难猜到,“%” 运算符的作用就是格式化字符串。在字符串内部,“% s” 代表用字符串进行替换,“% d” 表示用整数替换。有几个 “%?” 这样的占位符,后面就要跟数量与之对应的变量或者值,并且顺序要严格对应好。若只有一个 “%?” 占位符,那么后面括号是可以省略的。


常见的占位符及其对应的替换内容如下表所示:

占位符

替换内容

%d

整数

%f

浮点数

%s

字符串

%x

十六进制整数

对于格式化整数和浮点数,还能够指定是否补 0 以及整数与小数的位数,示例如下:

print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)

要是不太确定具体该使用哪种占位符,“% s” 永远是可行的,它可以将任何数据类型转换为字符串,例如:

print('Age: %s. Gender: %s' % (25, True))

有时候,若字符串里面的 “%” 是作为一个普通字符出现,这种情况下就需要转义,使用 “%%” 来表示一个 “%”,像下面这样:

print('growth rate: %d %%' % 7)


format () 方法

除了上述使用 “%” 的格式化方式外,还有一种格式化字符串的方法,那就是利用字符串的 format () 方法。它会按照传入参数的顺序依次替换字符串内的占位符 “{0}”“{1}”…… 不过,相比较而言,这种方式写起来要比使用 “%” 麻烦一些,示例如下:

print('Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125))

f-string

最后要介绍的格式化字符串的方法是使用以 “f” 开头的字符串,也就是常说的 f-string。它和普通字符串的区别在于,若字符串中包含 “{xxx}” 这样的内容,就会用对应的变量值去进行替换,示例如下:

r = 2.5
s = 3.14 * r ** 2
print(f'The area of a circle with radius {r} is {s:.2f}')

在上述代码中,“{r}” 会被变量 “r” 的值所替换,“{s:.2f}” 则被变量 “s” 的值替换,而且 “:” 后面的 “.2f” 指定了格式化参数,即要求保留两位小数,所以 “{s:.2f}” 的替换结果就是 19.62。

相关文章

Python实现整数的进制转换

任务要求将十进制整数分别转换为二进制、八进制和十六进制,并将结果在控制台打印输出。任务分析Python提供了bin()、oct()、hex()等内置函数直接完成进制转换,但输出结果包含前缀(如0b)。...

Python中的进制转换函数详解

左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir,关注领取python编程资料在编程中,经常需要在不同的进制之间转换数值,尤其是二进制、八进制、十进制和十六进制。P...

「调试」使用python与单片机进行通信

调试说明:环境:usb转ttl线一根,通信协议一份,STC系列单片机一个,电脑一台。功能:使用python发送16进制数据转换成字节流数据发给单片机,单片机返回16进制数据后转10进制(本次测试是获取...

20.8k Star本科生为你开发的十六进制编辑器

ImHex 是一个十六进制编辑器,用于逆向工程师解码、显示和分析二进制数据格式、提取信息或写入字节补丁的工具。ImHex 的开发者是 WerWolv,他是一名来自瑞士的 23 岁嵌入式系统电子工程师。...

跟我学Python(26)——Python中的数据类型转换

上篇文章小编已经给大家介绍了Python中基本数据类型的布尔类型,这篇文章小编将跟大家分享一下Python中数据类型如何转换。Python是动态类型的语言(也称为弱类型语言)所以是可以进行数据类型转换...

python字符串格式化指南

在 Python 中,字符串格式化是一种常见且重要的操作,用于将变量或值插入到字符串中,并控制输出的格式。本文将介绍几种常见的字符串格式化方法,帮助大家掌握在 Python 中有效地处理字符串的技巧。...