这只是我的一个代码片断。
print("Total score for %s is %s ", name, score)
但我希望它能打印出来。
"(姓名)的总分是(分数)"。
其中name
是一个列表中的变量,score
是一个整数。这是Python 3.3,如果这有什么帮助的话。
有许多方法可以做到这一点。要使用%
格式化修复你当前的代码,你需要传入一个元组。
1.把它作为一个元组传递。
print("%s的总分是%s" % (name, score))
一个只有一个元素的元组看起来像('this',)
。
下面是一些其他常见的方法。
2.把它作为一个字典传递。
print("%(n)s的总分是%(s)s" % {'n': name, 's': score})
还有新式的字符串格式,这可能更容易阅读。
3.使用新式的字符串格式化。
print("{}的总分是{}".format(name, score))
4.对数字使用新式的字符串格式化(对重新排序或多次打印同一个数字很有用)。
print("{0}的总分是{1}".format(name, score))
5.5.使用新式的字符串格式化与明确的名称。
print("{n}的总分是{s}".format(n=name, s=score)
6.6.串联字符串。
print("" + str(name) + " 的总分是" + str(score))
在我看来,这是最清楚的两个。
7.只需将数值作为参数传递。
print("Total score for", name, "is", score)
如果你不希望上面的例子中的`print`自动插入空格,请改变`sep`参数。
print("Total score for ", name, " is ", score, sep='')
如果你使用的是Python 2,将不能使用最后两个,因为`print`在Python 2中不是一个函数。然而,你可以从`__future__`导入这种行为。
从__future__导入print_function
8.使用Python 3.6中新的f
-字符串格式化。
print(f'{name}的总分是{score}')