修复 TypeError:没有足够的参数导致 Python 中的格式字符串错误
Manav Narula
2022年5月17日
在 Python 中,我们可以格式化字符串以获得我们想要的样式和格式的最终结果。
字符串格式化还涉及使用带有%
符号的占位符值。此方法是一种非常常见的技术,用于在 Python 中为缺失值提供临时值。
但是,如果不小心,可能会导致 not enough arguments for format string
错误,即 TypeError
。我们将在本教程中讨论此错误及其解决方案。
请参阅以下代码。
a = 2
b = 4
c = 6
s = "First %s Second %s Third %s" % a, b, c
print(s)
输出:
TypeError: not enough arguments for format string
我们得到这个错误是因为我们在字符串中只提供了一个 %
符号来给出值,并且存在三个值。上面的代码只考虑第一个值(a
)。我们需要在一个元组中传递它们来解决这个问题。
例如:
a = 2
b = 4
c = 6
s = "First %s Second %s Third %s" % (a, b, c)
print(s)
输出:
First 2 Second 4 Third 6
克服此错误的另一种方法是使用 format()
函数。 %
方法已过时用于格式化字符串。
我们可以在 format()
函数中指定值,并使用花括号 {}
提及缺失值。
请参阅下面的代码。
a = 2
b = 4
c = 6
s = "First {0} Second {1} Third {2}".format(a, b, c)
print(s)
输出:
First 2 Second 4 Third 6
在 Python 3.x 及更高版本中,我们可以使用 fstrings
来提供占位符字符串。此方法是格式化字符串的一种更新且更有效的方法。
我们可以像前面的例子一样在花括号中提供值。
请参阅以下示例。
a = 2
b = 4
c = 6
s = f"First {a} Second {b} Third {c}"
print(s)
输出:
First 2 Second 4 Third 6
作者: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn