您的位置:

使用format函数优化字符串输入

在写Python代码时,常常需要生成字符串。对于简单的情况,可以直接用+号拼接字符串,但是对于长字符串、格式化字符串等复杂情况,使用format函数则可更加方便快捷地生成字符串。

一、格式化字符串的基本用法

format函数是Python内置的字符串格式化方法,通过将格式化模板和需要填充的值作为参数传入,可以生成格式化后的字符串。

# 示例1:使用format函数生成简单字符串
name = '张三'
age = 25
print('我叫{},今年{}岁。'.format(name, age))
# 输出:我叫张三,今年25岁。

在格式化模板中,大括号{}表示需要被填充的值的位置,可以使用数字、变量名或者字典键名等来指定填充的值。

# 示例2:指定填充值的位置
print('{1} is {0} years old.'.format(25, '张三'))
# 输出:张三 is 25 years old.

# 示例3:使用变量名来指定填充值
print('我叫{name},今年{age}岁。'.format(name='李四', age=30))
# 输出:我叫李四,今年30岁。

# 示例4:使用字典来指定填充值
person = {'name': '王五', 'age': 20}
print('我叫{name},今年{age}岁。'.format(**person))
# 输出:我叫王五,今年20岁。

从示例中可以看出,在使用format函数时,填充值的位置从0开始计数,而且可以重复使用同一个值,并且还可以使用变量名和字典键名来指定填充的值。

二、格式化字符串的进阶用法

除了基本的格式化外,format函数还支持对填充值进行格式化处理,比如指定浮点数保留小数位数、进行数值对齐等。

# 示例5:指定浮点数保留小数位数
pi = 3.1415926
print('π的值是{:.2f}'.format(pi))
# 输出:π的值是3.14

# 示例6:指定数值对齐方式
print('{:<10} is left aligned'.format('hello'))
# 输出:hello      is left aligned
print('{:>10} is right aligned'.format('world'))
# 输出:     world is right aligned
print('{:^10} is center aligned'.format('python'))
# 输出:  python   is center aligned

在示例5中,".2f"表示将浮点数保留两位小数。在示例6中,"<", ">", "^"分别表示左对齐、右对齐、居中对齐,后面的数字表示总宽度。如果填充值过短,则会使用空格或者指定的填充字符进行补齐。

三、格式化字符串的高级用法

除了基本的格式化和进阶的格式化,format函数还支持更加灵活的格式化方法,比如使用下标、使用属性和方法等。

# 示例7:使用下标
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        
p = Point(3, 4)
print('坐标是({0.x}, {0.y})'.format(p))
# 输出:坐标是(3, 4)

# 示例8:使用属性和方法
person = {'name': '王五', 'age': 20, 'job': 'coder'}
print('{p.name},{p.job},今年{p.age}岁。'.format(p=person))
# 输出:王五,coder,今年20岁。

# 示例9:使用index和key
people = ['张三', '李四', '王五']
print('第二个人是{0[1]}'.format(people))
# 输出:第二个人是李四

info = {'name': '张三', 'age': 25}
print('{0[name]},今年{0[age]}岁。'.format(info))
# 输出:张三,今年25岁。

在示例7中,使用点"."和下标来访问Point对象的属性。在示例8中,使用"."和变量名来访问字典对象的键值。在示例9中,使用下标和key来访问列表和字典对象中的元素。

四、结尾

综上所述,format函数是Python内置的字符串格式化方法,通过将格式化模板和需要填充的值作为参数传入,可以生成格式化后的字符串。除了基本的格式化外,format函数还支持对填充值进行格式化处理,比如指定浮点数保留小数位数、进行数值对齐等。而且,格式化字符串的高级用法使得我们可以更加灵活地使用format函数来生成字符串。因此,在Python开发中,我们应该尽可能地使用format来优化字符串输入。