python中format函数如何使用

1. 什么是format函数?

在Python中,我们经常需要将变量、数据等以一定的格式输出到控制台或者写入文件中,这时就可以使用字符串格式化函数。

Python中常用的字符串格式化函数包括:

百分号(%)格式化字符串

str.format()方法格式化字符串

f-string格式化字符串(Python3.6及以上版本)

本文主要介绍format函数。

2. format函数的基本用法

format函数是一种更加灵活、可读性更强的字符串格式化方式,它将数据与格式混合在一起,使得代码更加简洁易懂。

format函数的基本用法是:

format_string.format(arguments)

其中,format_string为格式化的字符串,arguments为需要格式化的变量、表达式或者值。

下面是一个简单的示例:

name = 'Jack'

age = 20

print('My name is {}, and I am {} years old.'.format(name, age))

输出结果为:

My name is Jack, and I am 20 years old.

在格式化字符串中,用一对花括号{}表示要替换的位置,可以用多对花括号{}来表示不同的位置,然后通过参数的位置来指定需要替换的位置。

在上面的示例中,字符串"My name is {}, and I am {} years old."中有两个花括号{},分别表示需要替换的位置,第一个{}需要替换成name,第二个{}需要替换成age。

在调用format函数时,需要将需要替换的变量、表达式或者值作为参数传递给format函数,format函数将会按照花括号{}的位置将字符串中的{}依次替换成相应的参数,从而得到格式化后的字符串。

3. format函数的进阶用法

3.1 通过索引指定参数

除了按照参数的位置来指定参数之外,还可以通过索引来指定参数。

在格式化字符串中,用一对花括号{}表示要替换的位置,可以在花括号{}中指定参数的索引,从而通过索引来指定参数。

下面是一个示例:

name = 'Jack'

age = 20

print('My name is {0}, and I am {1} years old.'.format(name, age))

输出结果为:

My name is Jack, and I am 20 years old.

在上面的示例中,通过在花括号{}中指定参数的索引,{0}表示第一个参数name,{1}表示第二个参数age,从而指定了参数的顺序。

3.2 通过关键字指定参数

除了按照参数的位置或者索引来指定参数之外,还可以通过关键字来指定参数。

在格式化字符串中,用一对花括号{}表示要替换的位置,可以在花括号{}中指定参数的关键字,从而通过关键字来指定参数。

下面是一个示例:

name = 'Jack'

age = 20

print('My name is {name}, and I am {age} years old.'.format(name=name, age=age))

输出结果为:

My name is Jack, and I am 20 years old.

在上面的示例中,通过在花括号{}中指定参数的关键字,{name}表示name变量,{age}表示age变量,从而指定了参数的值。

3.3 格式化指定参数类型

通过format函数,可以对不同类型的参数进行不同的格式化。

3.3.1 格式化整数类型

格式化整数类型的参数时,可以使用以下转换符。

转换符 含义 示例 结果
d 十进制整数 {} 42
x 十六进制整数(小写字母) {:x} 2a
X 十六进制整数(大写字母) {:X} 2A
o 八进制整数 {:o} 52
b 二进制整数 {:b} 101010

下面是一个示例:

x = 42

print('x = {}, hex = {:x}, oct = {:o}, bin = {:b}'.format(x, x, x, x))

输出结果为:

x = 42, hex = 2a, oct = 52, bin = 101010

3.3.2 格式化浮点数类型

格式化浮点数类型的参数时,可以使用以下转换符。

转换符 含义 示例 结果
f 浮点数(小数点后保留6位) {} 3.141593
e 科学计数法(小写e) {:e} 3.141593e+00
E 科学计数法(大写E) {:E} 3.141593E+00
g 自动选择(大数使用科学计数法) {:g} 0.0003141593
G 自动选择(大数使用科学计数法) {:G} 0.0003141593
% 百分数(小数点后保留6位) {:%} 314.159300%

下面是一个示例:

pi = 3.1415926

print('pi = {}, e = {:.2e}, pi + e = {:.3g}'.format(pi, 2.718, pi + 2.718))

输出结果为:

pi = 3.1415926, e = 2.72e+00, pi + e = 5.86

3.3.3 格式化字符串类型

格式化字符串类型的参数时,可以使用以下转换符。

转换符 含义 示例 结果
s 字符串 {} hello, world

下面是一个示例:

s = 'hello, world'

print('s = {:s}, s upper = {:s}'.format(s, s.upper()))

输出结果为:

s = hello, world, s upper = HELLO, WORLD

4. format函数的高级用法

4.1 对齐格式化

使用format函数,可以对字符串进行对齐格式化。在花括号中指定对齐方式和宽度。

4.1.1 左对齐

使用花括号中的"-"来指定左对齐格式,并在花括号中指定宽度。

下面是一个示例:

name = 'Jack'

age = 20

print('My name is{:<10}, and I am {:<5} years old.'.format(name, age))

输出结果为:

My name is Jack      , and I am 20    years old.

在上面的示例中,对name和age变量使用左对齐格式化,并设置宽度分别为10和5。

4.1.2 右对齐

使用花括号中的">"来指定右对齐格式,并在花括号中指定宽度。

下面是一个示例:

name = 'Jack'

age = 20

print('My name is{:>10}, and I am {:>5} years old.'.format(name, age))

输出结果为:

My name is      Jack, and I am    20 years old.

在上面的示例中,对name和age变量使用右对齐格式化,并设置宽度分别为10和5。

4.1.3 居中对齐

使用花括号中的"^"来指定居中对齐格式,并在花括号中指定宽度。

下面是一个示例:

name = 'Jack'

age = 20

print('My name is{:^10}, and I am {:^5} years old.'.format(name, age))

输出结果为:

My name is   Jack   , and I am  20  years old.

在上面的示例中,对name和age变量使用居中对齐格式化,并设置宽度分别为10和5。

4.2 使用千位分隔符

在数字类型的参数中,可以使用千位分隔符进行格式化。

使用花括号中的","来指定千位分隔符格式。

下面是一个示例:

x = 1234567.89

print('{:,.2f}'.format(x))

输出结果为:

1,234,567.89

在上面的示例中,使用千位分隔符对x变量进行格式化,并设置小数点后保留两位。

4.3 使用变量名作为格式化参数

在给format函数传递参数时,可以使用变量名来指定参数的值,从而使得代码更加清晰易懂。

变量名可以是字符串、数字、下划线组成的任意命名,但不能以数字开头。

下面是一个示例:

person = {'name': 'Jack', 'age': 20}

print('My name is {person[name]}, and I am {person[age]} years old.'.format(person=person))

输出结果为:

My name is Jack, and I am 20 years old.

在上面的示例中,使用变量名person指定参数的值,然后在格式化字符串中通过person[name]和person[age]来访问person变量中的属性值。

4.4 使用format_map函数动态生成参数

在给format函数传递参数时,如果参数是一个字典,可以使用format_map函数动态生成参数。

format_map函数的参数是一个字典,格式化字符串中使用花括号{}和key来引用字典中的值。

下面是一个示例:

person = {'name': 'Jack', 'age': 20}

print('My name is {name}, and I am {age} years old.'.format_map(person))

输出结果为:

My name is Jack, and I am 20 years old.

在上面的示例中,使用format_map函数动态生成参数,方便快捷。

5. 总结

通过本文的介绍,我们了解了format函数的基本用法和高级用法,包括索引、关键字、不同类型的参数格式化、对齐格式化、千位分隔符格式化、变量名作为格式化参数和format_map函数动态生成参数。

使用format函数能够方便地对字符串进行格式化,让代码更加清晰易懂,提高了代码的可读性。

后端开发标签