Python中的format()
函数用于格式化字符串。它可以将不同类型的数据格式化为字符串中指定的格式。以下是format()
函数的各种用法及示例:
“{:}”.format()
格式内容:
-后面可以加
整数类型:b–2进制、c–Unicode、d–十进制、o–八进制、x/X–十六进制
浮点数类型:
- e/E–以科学计数法的形式输出浮点数
- f–以浮点数的形式输出浮点数。默认情况下,会输出小数点后面六位数字,但是可以通过指定精度来控制输出的位数
%
:–以百分数的形式输出浮点数,乘以100并在末尾加上百分号。s--
输出字符串r--
输出字符串的repr()
形式(原始字符串)
1、位置参数
这是最基本的用法,可以将格式化字符串中的占位符{}
替换为相应的位置参数。
name = "John"age = 30print("My name is {} and I am {} years old.".format(name, age))# 输出:My name is John and I am 30 years old.
2、命名参数
可以使用命名参数来指定占位符的值,这样可以使代码更易读
print("My name is {name} and I am {age} years old.".format(name="John", age=30))# 输出:My name is John and I am 30 years old.
3、位置参数与命名参数的混合使用
位置参数和命名参数可以混合使用,但是位置参数必须在前面。
print("My name is {0} and I am {1} years old. My hobby is {hobby}.".format("John", 30, hobby="swimming"))# 输出:My name is John and I am 30 years old. My hobby is swimming.
4、使用字典格式化字符串
可以使用字典的键值对来格式化字符串,使用{}
包含键名,键名在format()
函数中指定。
person = {'name': 'John', 'age': 30}print("My name is {name} and I am {age} years old.".format(**person))# 输出:My name is John and I am 30 years old.
5、格式化数字
可以使用占位符指定数字的格式,例如{:d}
表示整数,{:f}
表示浮点数。
num = 3.14159print("The value of pi is approximately {:.2f}.".format(num))# 输出:The value of pi is approximately 3.14.
6、格式化时间
可以使用strftime()
函数指定时间的格式,然后在格式化字符串中使用占位符替换时间。
from datetime import datetimenow = datetime.now()print("Today is {:%Y-%m-%d %H:%M:%S}.".format(now))# 输出:Today is 2023-04-19 18:30:00.
7、使用格式字符串语法
Python 3.6及以上版本支持使用f-strings(格式化字符串字面值)来格式化字符串,用法比较简单,直接在字符串前面加上字母“f”,然后使用花括号{}包含变量名。
name = "John"age = 30print(f"My name is {name} and I am {age} years old.")# 输出:My name is John and I am 30 years old.
8、格式化二进制、八进制和十六进制数字
可以使用占位符指定数字的进制,例如{:b}
表示二进制,{:o}
表示八进制,{:x}
表示十六进制。
num = 42print("The binary representation of 42 is {:b}.".format(num))# 输出:The binary representation of 42 is 101010.print("The octal representation of 42 is {:o}.".format(num))# 输出:The octal representation of 42 is 52.print("The hexadecimal representation of 42 is {:x}.".format(num))# 输出:The hexadecimal representation of 42 is 2a.
9.格式化货币
可以使用占位符指定货币符号和小数点的位置,例如{:,.2f}
表示保留两位小数,以逗号分隔千位,使用美元符号。
price = 123456.789print("The price is ${:,.2f}.".format(price))# 输出:The price is $123,456.79.
10、格式化百分比
可以使用占位符将小数转换为百分比,例如{:.2%}
表示保留两位小数,乘以100并添加百分号。
ratio = 0.5678print("The ratio is {:.2%}.".format(ratio))# 输出:The ratio is 56.78%.
11、当需要控制字符串的宽度时,可以使用占位符指定输出的字符宽度
name = "Alice"print("Hello, {:10}!".format(name))# 输出:Hello, Alice !print("Hello, {:^10}!".format(name))# 输出:Hello, Alice !print("Hello, {:10}!".format(name))# 输出:Hello,Alice!
12、如果要将字符长度作为变量传递给格式化字符串的宽度字段,可以使用f-string(格式化字符串字面值)。
width = 10i = 42formatted_string = f"{i:^{width}}"print(formatted_string)
或者
width = 10i = 42formatted_string = "{:^{}}".format(i, width)print(formatted_string)