タグ付けされた質問 「f-string」

16
文字列のフォーマット:%と.format
Python 2.6では、str.format()既存の%演算子とは構文が少し異なるメソッドが導入されました。どちらがより適切で、どのような状況に適していますか? 以下はそれぞれの方法を使用し、同じ結果をもたらすので、違いは何ですか? #!/usr/bin/python sub1 = "python string!" sub2 = "an arg" a = "i am a %s" % sub1 b = "i am a {0}".format(sub1) c = "with %(kwarg)s!" % {'kwarg':sub2} d = "with {kwarg}!".format(kwarg=sub2) print a # "i am a python string!" print b # "i am a …

6
Fストリングを使用した10進数の後の固定数字
Pythonのf文字列を使用して、小数点以下の桁数を修正する簡単な方法はありますか?(具体的には.formatや%などの他の文字列フォーマットオプションではなく、f-strings) たとえば、小数点以下2桁を表示したいとします。 それ、どうやったら出来るの?としましょう a = 10.1234

1
なぜf '{{{74}}}'はf-Stringsを使用したf '{{74}}'と同じなのですか?
f-StringはPython 3.6から利用でき、文字列のフォーマットに非常に役立ちます。 >>> n='you' >>> f'hello {n}, how are you?' 'hello you, how are you?' それらについてPython 3のf-Stringsでさらに読む:改良された文字列フォーマット構文(ガイド)。私は興味深いパターンを見つけました: 三重中括弧を使用すると、文字列に中括弧が1つだけ含まれることに注意してください。 >>> f"{{{74}}}" '{74}' ただし、3つ以上のブレースを使用する場合は、より多くのブレースを表示できます。 >>> f"{{{{74}}}}" '{{74}}' そして、これはまさにその通りです。 >>> f'{74}' '74' >>> f'{{74}}' '{74}' 2 {から3に渡しても、結果は同じです。 >>> f'{{{74}}}' '{74}' # same as f'{{74}}' ! 最大4つ必要です。({{{{)2つの中括弧を出力として取得するには: >>> f'{{{{74}}}}' '{{74}}' どうしてこれなの?Pythonがその瞬間から追加のブレースを必要とするために2つのブレースで何が起こりますか?


10
f文字列の評価を延期/延期するにはどうすればよいですか?
私はテンプレート文字列を使用していくつかのファイルを生成していますが、以前のテンプレートコードを次のようなものから減らすために、この目的のための新しいf文字列の簡潔さが気に入っています。 template_a = "The current name is {name}" names = ["foo", "bar"] for name in names: print (template_a.format(**locals())) これで、変数を直接置き換えて、これを行うことができます。 names = ["foo", "bar"] for name in names: print (f"The current name is {name}") ただし、テンプレートを他の場所(コードの上位)で定義したり、ファイルなどからインポートしたりすることが理にかなっている場合があります。これは、テンプレートがフォーマットタグを含む静的な文字列であることを意味します。文字列を新しいf文字列として解釈するようにインタプリタに指示するには、文字列に何かが発生する必要がありますが、そのようなことがあるかどうかはわかりません。 文字列を取り込んで、.format(**locals())呼び出しの使用を回避するためにf文字列として解釈する方法はありますか? 理想的にmagic_fstring_functionは、このようにコーディングできるようにしたいです...(私が理解していない部分がどこにあるのか): template_a = f"The current name is {name}" # OR [Ideal2] template_a = magic_fstring_function(open('template.txt').read()) names …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.