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)