Python で TypeError: Not Enough Arguments for Format String を修正
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
このエラーが発生するのは、値を指定するために文字列に%
記号を 1つだけ指定し、値が 3つあるためです。上記のコードは、最初の値(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 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