Python实现字符串格式化输出的方法详解
字符串格式化(String formatting)指的是在填充字符串时,对字符串进行格式控制,以适应不同的数据类型和数据结构。Python提供了多种方法用于字符串格式化,本篇文章将从基本的%
格式化、format()
方法、f-string
(格式化字符串)这三个方面来进行详细讲解。
基本的%格式化
在Python中,我们可以使用%
来做字符串格式化。%可以接收一个或多个占位符,用来表示后面的真实值。占位符使用格式如下:
占位符 | 含义 |
---|---|
%s | 字符串 |
%d | 有符号十进制整数 |
%f | 浮点数 |
%e | 科学计数法 |
%g | 最终使用%f或%e |
%x | 十六进制整数 |
在使用时,需要在字符串中指定占位符,如:
name = 'Tom'
age = 22
print('My name is %s, I am %d years old' % (name, age))
输出:
My name is Tom, I am 22 years old
上面的代码中,%s和%d分别是字符串和整数的占位符,后面的(name, age)是用于替换占位符的真实值。也可以使用如下方式:
name = 'Tom'
age = 22
print('My name is {0}, I am {1} years old'.format(name, age))
输出同样是:
My name is Tom, I am 22 years old
使用%
格式化字符串的方式在Python 3.0 之后已不再被推荐使用,取而代之的是str.format()
和f-string
。后面会详细讲解。
format()
方法格式化
str.format()
方法可以实现字符串格式化,它使用左右大括号 {}
来标记要插入的变量。语法如下:
"{0} {1}".format(var1, var2)
其中, {}
中的数字可省略。也就是说可以写成如下形式:
"{} {}".format(var1, var2)
这种方法对于多数使用场景来说足够方便了,但是如果你的字符串里出现大量浮点型数字,并且你想控制每个数字的小数位数,那么这种方法就会有些麻烦。
import math
print('PI is {:.2f}'.format(math.pi))
在输出字符串中,.2f
表示输出到小数点后两位,输出:
PI is 3.14
还可以使用{}
更加方便地组合字符串等操作,具体可以参考Python官方文档。
f-strings格式化
f-strings
(格式化字符串)是在Python 3.6中引入的一项新功能。这种方法是目前Python中最快速、最简单的字符串格式化方法并且易于阅读。语法如下:
f'string here {var}'
其中,f
表示该字符串是一个格式化字符串。大括号中的变量名将被替换为变量的值。
name = 'Tom'
age = 22
print(f'My name is {name}, I am {age} years old')
输出:
My name is Tom, I am 22 years old
在f-strings
中还可以执行运算、调用函数以及在大括号中使用lambda表达式等,具体可以参考Python官方文档。
示例2:
d = {"Alice": 45, "Bob": 60, "Charlie": 50}
for name, age in d.items():
print(f"The age of {name} is {age}, the year of birth is {2022-age}.")
这段代码,将字典类型的d
进行遍历,输出每个人的信息,其中{name}
, {age}
和 {2022-age}
分别是三个变量的值。
The age of Alice is 45, the year of birth is 1977.
The age of Bob is 60, the year of birth is 1962.
The age of Charlie is 50, the year of birth is 1972.
综上所述,Python提供了多种方法用于字符串格式化,我们可以根据自己的需求,选择合适的方法来完成字符串格式化的操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现字符串格式化输出的方法详解 - Python技术站