欢迎访问宙启技术站
智能推送

如何使用Python的format()函数来格式化输出字符串?

发布时间:2023-06-15 19:16:52

format()函数是Python中常用的字符串格式化函数,它使用一组值来填充格式化字符串中的占位符,以生成一个新的字符串。在Python 3.x版本中,所有的字符串都是Unicode字符串,可以被编码成不同的格式,例如ASCII、UTF-8、GB2312等等。format()函数可以根据需要将字符串编码成对应的格式。

格式化字符串

在Python中,格式化字符串有两种方式:一种是使用%s占位符,另一种是使用{}占位符。下面是一个使用%s占位符的例子:

name = "张大千"

age = 30

print("我的名字是%s,年龄是%d岁。" % (name, age))

在上面的代码中,我们使用了%s占位符来表示一个字符串,并使用了%d占位符来表示一个整数。该字符串包含了两个占位符,分别对应两个变量name和age。在print()函数中,我们使用了%运算符来使用这些占位符。在%运算符的左侧,是一个字符串,包含了占位符,而在%运算符的右侧,则是一个元组,包含了变量name和age。

使用%s占位符比较简单,但是在需要格式化多个变量时,需要使用多个占位符,很容易造成混淆。因此,Python提供了另一种格式化字符串的方式,使用{}占位符。下面是一个使用{}占位符的例子:

name = "张大千"

age = 30

print("我的名字是{},年龄是{}岁。".format(name, age))

在上面的代码中,我们使用了{}占位符来表示一个变量。该字符串包含了两个占位符,分别对应两个变量name和age。在print()函数中,我们使用了format()方法来使用这些占位符。在format()方法中,我们依次传入了变量name和age。

格式化数字

在Python中,format()函数可以用来格式化数字。下面是一些示例:

# 格式化整数

x = 1234

print("x的十进制表示为{:d}".format(x))  # 输出:x的十进制表示为1234

print("x的八进制表示为{:o}".format(x))  # 输出:x的八进制表示为2322

print("x的十六进制表示为{:x}".format(x))  # 输出:x的十六进制表示为4d2

print("x的二进制表示为{:b}".format(x))  # 输出:x的二进制表示为10011010010

# 格式化浮点数

y = 3.1415926

print("y取小数点后{:f}位为{}".format(2, format(y, '.2f')))  # 输出:y取小数点后2位为3.14

print("y取科学计数法为{}".format("{:.2e}".format(y)))  # 输出:y取科学计数法为3.14e+00

在上面的代码中,我们使用了不同的占位符,来实现对整数和浮点数的格式化输出。

在整数的格式化中,我们使用了不同的进制占位符:%d表示十进制,%o表示八进制,%x表示十六进制,%b表示二进制。在Python 3.x版本中,{}占位符也支持这些进制表示。

在浮点数的格式化中,我们使用了不同的占位符:%.2f表示保留小数点后两位,%.2e表示按科学计数法输出,并保留两位小数。

格式化日期时间

在Python中,可以使用datetime模块来处理日期和时间。下面是一些示例:

# 格式化时间

import datetime

now = datetime.datetime.now()

print(now)  # 输出当前时间

# 格式化成字符串

s1 = now.strftime("%Y-%m-%d %H:%M:%S")

s2 = now.strftime("%Y年%m月%d日 %H:%M:%S")

print(s1)  # 输出:2022-05-29 10:08:15

print(s2)  # 输出:2022年05月29日 10:08:15

在上面的代码中,我们使用了strftime()方法来格式化时间。strftime()方法接受一个格式字符串作为参数,用于指定日期时间的格式。例如,%Y表示四位数的年份,%m表示两位数的月份,%d表示两位数的日期,%H表示两位数的小时,%M表示两位数的分钟,%S表示两位数的秒数。

需要注意的是,在格式化日期时间时,大小写字母是有区别的,例如%H表示24小时制的小时数,%h表示12小时制的小时数。

格式化字典

在Python中,即使是字典也可以使用format()函数格式化输出。下面是一个示例:

# 格式化字典

d = {"name": "张大千", "age": 30, "gender": "男"}

print("我的名字是{name},年龄是{age}岁,是{gender}性。".format(**d))

在上面的代码中,我们使用了**操作符来解包字典d,并将其作为format()方法的参数。在字符串中,我们使用{name}、{age}和{gender}来表示字典中对应的值。

需要注意的是,在使用字典格式化字符串时,字典的键名必须与占位符一一对应,否则会报错。

总结

本文介绍了Python的format()函数如何来格式化输出字符串。format()函数支持的占位符包括:%s、%d、%o、%x、%b、{}等。使用format()函数格式化输出字符串,可以使代码更加清晰和简洁。根据需要,我们可以使用不同的方法来格式化字符串、数字、日期时间和字典。在实际应用中,我们可以根据需求来灵活使用format()函数输出格式化后的字符串。