您的位置:

Python格式化字符串的简单实用方法

在日常工作中,我们难免会遇到需要将数据以特定的格式输出的场景。Python中的字符串格式化提供了一种简单、快捷的方式,可以让我们方便地输出格式化的字符串,从而满足不同需求。

一、基本字符串格式化

# 使用百分号 % 进行字符串格式化
name = 'Python'
version = '3.8'
print('Hello, %s %s!' % (name, version))

# 输出结果:Hello, Python 3.8!

在上面的示例中,我们使用了百分号 % 进行字符串格式化,%s 表示字符串占位符,%后面的括号中用逗号分隔多个占位符对应的值。这种方式是 Python2.x 中的方式。

# 使用format()方法进行字符串格式化
name = 'Python'
version = '3.8'
print('Hello, {} {}!'.format(name, version))

# 输出结果:Hello, Python 3.8!

# 使用位置参数指定占位符
name = 'Python'
version = '3.8'
print('Hello, {0} {1}!'.format(name, version))

# 输出结果:Hello, Python 3.8!

# 使用关键字参数指定占位符
name = 'Python'
version = '3.8'
print('Hello, {name} {version}!'.format(name=name, version=version))

# 输出结果:Hello, Python 3.8!

在 Python3.x 中,更推荐使用 format() 方法进行字符串格式化。format()方法通过大括号 {} 进行字符串的占位。format 方法可以按照位置,关键字等不同的方式传递参数。

二、格式化字符串字面值(f-string)

# 使用格式化字符串字面值输出变量
name = 'Python'
version = '3.8'
print(f'Hello, {name} {version}!')

# 输出结果:Hello, Python 3.8!

在 Python 3.6 中,新增了格式化字符串字面值(f-string)的语法。使用 f-string 可以很方便地在字符串中加入变量。只需要在字符串前加上 f 或 F 就可以创建一个 f-string 。

三、使用格式化占位符

1. 字符串格式化占位符

# 使用 %s 占位符格式化字符串
name = 'Monty'
print('My name is %s' % name)

# 输出结果:My name is Monty

# 使用 %r 占位符格式化字符串
name = 'Monty'
print('My name is %r' % name)

# 输出结果:My name is 'Monty'

在字符串格式化时,除了 %s 外,还可以使用 %r 占位符。%s 和 %r 都可以表示字符串,区别在于 %s 输出的是字符串,而 %r 输出的是字符串的原始代码。如果想要输出被双引号或单引号包裹的字符串,可以使用 %s,如果想要输出字符串的表达式形式,可以使用 %r。

2. 数字格式化占位符

# 格式化整型数字
num = 12345
print('Int: %d' % num)

# 输出结果:Int: 12345

# 格式化浮点型数字
pi = 3.1415926
print('PI: %.2f' % pi)

# 输出结果:PI: 3.14

除了字符串,还可以使用数字格式化占位符。%d 表示整型数字,%f 表示浮点型数字。除了这两个占位符之外,还可以使用 %e 表示科学计数法表示的浮点型数字。

3. 宽度、精度与千位分隔符

# 宽度和精度控制
num = 123.456
print('Num: %10.2f' % num)

# 输出结果:Num:     123.46

# 千位分隔符
num = 1234567890
print('Num: {:,}'.format(num))

# 输出结果:Num: 1,234,567,890

在占位符中可以使用数字控制输出格式的宽度和精度,可以在占位符中添加两个数字,分别表示宽度和精度。当宽度小于数字的位数时,会按原样输出数字。

四、总结

在 Python 中,字符串格式化提供了多种方法,可以满足不同的输出需求。从传统的百分号格式化、format()方法、到新增的 f-string,都为我们提供了便捷的字符串输出方式。在编写代码时,可以根据需要选择不同的方法,使代码更加简洁、易读。