修复 TypeError:没有足够的参数导致 Python 中的格式字符串错误

Manav Narula 2022年5月17日
修复 TypeError:没有足够的参数导致 Python 中的格式字符串错误

在 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 Narula avatar Manav Narula avatar

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

相关文章 - Python String