Python格式化字符串

B站影视 2024-12-24 22:07 3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

来源:百科智慧谷

相关推荐