format函数:如何使用和示例
Python的format函数是对字符串格式化的一种方法。它可以让我们将一些值按照我们想要的格式插入到字符串中。
在Python 3中,使用format函数来格式化字符串并替换值是首选的方法。在这篇文章中,我们将深入了解Python中的format函数的使用方法和示例。
使用方法
点击下面的链接,尝试使用阅读器交互式地测试格式化字符串:
https://docs.python.org/3/library/string.html#formatstrings
示例:
1. 基本用法
我们可以使用大括号 {} 将值插入到字符串中。format()方法将值替换并返回新的格式化字符串。
例1: 当我们没有传递参数时。
#语法:
str.format()
'{}'.format()
这将返回空字符串。
例2: 带有占位符的字符串。
#语法:
str.format(value)
'{} is good at {}.'.format('Python', 'Programming')
这样会把两个值分别替换到字符串中,输出结果为:Python is good at Programming.
2. 索引和位置参数
如果我们想指定参数添加到特定位置,我们可以在大括号 {} 中添加一个位置或索引。
例1: 通过位置指定参数。
#语法:
str.format(positional_arg)
'{0} is trying to learn {1} language.'.format('John', 'Python')
这样,我们的一号参数替换 个大括号里的值(0 based indexed),二号参数替换第二个大括号里的值。正如我们上面所提到的,“{0}”代表 个参数,“{1}”代表第二个参数,以此类推。
输出结果为:John is trying to learn Python language.
例2: 通过关键字指定参数
#语法:
str.format(key)
'{name} is a {gender} .'.format(name = 'Alex', gender = 'Boy')
这里我们给了两个关键字name和gender。这将把值“Alex”和“Boy”分别替换到字符串“{name}”和“{gender}”的位置。请注意,在打印时必须使用关键字调用参数。
输出结果为:Alex is a Boy.
3. 只要是数字就行
你可以在大括号中写任何可以解析为数字的表达式和字符串。然后再根据传入的参数列表进行处理,如果表达式或是字符串不能转化成数字时就会爆发 TypeError 错误:
#语法:
str.format(any_expression)
'{1} is {0} years old.'.format(20, 'James')
输出结果为:James is 20 years old.
4. 浮点数格式化
默认情况下,浮点数打印出其全部数字和小数位数。我们还可以使用{:. ns} 来控制小数点后面的位数。这里ns是一个整数,表示要保留的位数。
#语法:
'{:.nf}'.format(3.141592653589793238)
输出结果为:3.14159 。
5. 可读性更强的格式化
我们可以使用复合格式来生成可读性更强的输出格式。这可以通过在大括号内添加更多信息来实现,例如 .3f 表示保留三位小数。
#语法:
[[fill_character]alignment][sign][#][0][width][,][.precision][type]
{:>10.3f}'.format(3.141592653589793238)
输出结果为: 3.142。
6. 对齐文本
您可以使用{alignment}来控制文本的对齐方式。这里 alignment 的值可以是左对齐 ‘<’,右对齐 ‘>’,中对齐 ‘^’
#语法:
'Py>thon'.format() #右对齐(Python)
# '{:^10}'.format('Python') #居中对齐
输出结果为:Python。
7. 复杂格式
如果您希望具有更多复杂格式,则应使用一组{}表示需要一个参数,在 个{}中添加格式规范。
#语法:
'My name is {person[name]} and I am {person[age]:.2f} years old.'.format(person={'name':'James', 'age':20})
输出结果为: My name is James and I am 20.00 years old.
结论:
可以看到,format函数在Python中用于格式化字符串的非常强大,也可以使用的非常灵活。您可以根据需要插入表达式,字符串,数字或任何其他值,甚至可以使用复杂格式。
