% 形式でプレースホルダーを置換するときに TypeError が発生する
% 形式を使用して {0} のようなプレースホルダーを置換しようとすると、開発者は次のような問題が発生する可能性があります。エラー: 「TypeError: 文字列のフォーマット中に一部の引数が変換されませんでした。」このエラーは、不適切な書式設定、特に古いスタイルの % 書式設定と新しいスタイルの {} 書式設定の混同が原因で発生します。
以下に示すように、古いスタイルの % 書式設定では、書式設定に %d のようなプレースホルダが使用されます。 :
'It will cost $%d dollars.' % 95
ただし、複数の値を使用する場合は、タプルとして指定する必要があります:
"'%s' is longer than '%s'" % (name1, name2)
一方、新しいスタイルの {} 書式設定では、{} や .format メソッドなどのプレースホルダーが使用されます。これら 2 つのスタイルを混合しないようにすることが重要です。テンプレート文字列に {} プレースホルダーが含まれている場合は、%.
# Correct: 'It will cost ${0} dollars.'.format(95) "'{0}' is longer than '{1}'".format(name1, name2) # Incorrect (Do not mix % and {}): 'It will cost ${0} dollars.' % 95 "'%0' is longer than '%1'" % (name1, name2)
これらの書式設定ガイドラインに従うことで、開発者は「TypeError: 文字列の書式設定中にすべての引数が変換されません」エラーを解決し、書式設定することができます。文字列は正しくあります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3