我有一些如下代码:
score = 100 name = 'Alice' print('Total score for %s is %s', name, score)
我希望它打印出来Total score for Alice is 100,但我得到的却是Total score for %s is %s Alice 100。如何才能让所有内容以正确的顺序和正确的格式打印出来?
Total score for Alice is 100
Total score for %s is %s Alice 100
要让所有内容以正确的顺序和格式打印出来,你需要正确地使用字符串格式化方法。你当前的代码将变量name和score作为额外的参数传递给print函数,而不是将它们包含在字符串格式中。
name
score
print
这里有几种方法可以正确地格式化字符串:
%
这是传统的字符串格式化方法:
score = 100 name = 'Alice' print('Total score for %s is %s' % (name, score))
str.format()
这种方法比 % 操作符更强大且灵活:
score = 100 name = 'Alice' print('Total score for {} is {}'.format(name, score))
f-字符串提供了一种简洁且可读性强的格式化方式:
score = 100 name = 'Alice' print(f'Total score for {name} is {score}')
print('Total score for %s is %s' % (name, score)):
print('Total score for %s is %s' % (name, score))
%s
(name, score)
使用 str.format() 方法:
print('Total score for {} is {}'.format(name, score)):
print('Total score for {} is {}'.format(name, score))
{}
format()
使用 f-字符串:
print(f'Total score for {name} is {score}')
{name}
{score}
所有这些方法都会正确输出:
选择最适合你编码风格和 Python 版本要求的方法。如果你使用的是 Python 3.6 或更高版本,f-字符串通常是最可读且推荐的选项。