Movatterモバイル変換


[0]ホーム

URL:


Sorry, we no longer support your browser
Please upgrade toMicrosoft Edge,Google Chrome, orFirefox. Learn more about ourbrowser support.
Skip to main content
Stack Overflow
  1. About
  2. For Teams
Loading…
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

You are notlogged in. Your edit will be placed in a queue until it ispeer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

String formatting: % vs. .format vs. f-string literal

There are various string formatting methods:

  • Python <2.6:"Hello %s" % name
  • Python 2.6+:"Hello {}".format(name)   (usesstr.format)
  • Python 3.6+:f"{name}"   (uses f-strings)

Which is better, and for what situations?


  1. The following methods have the same outcome, so what is the difference?

    name = "Alice""Hello %s" % name"Hello {0}".format(name)f"Hello {name}"# Using named arguments:"Hello %(kwarg)s" % {'kwarg': name}"Hello {kwarg}".format(kwarg=name)f"Hello {name}"
  2. When does string formatting run, and how do I avoid a runtime performance penalty?


If you are trying to close a duplicate question that is just looking for a way to format a string, please useHow do I put a variable’s value inside a string?.

Answer*

Draft saved
Draft discarded
Cancel
2
  • 4
    Or just use'{type_names} [a-z]{{2}}'.format(type_names='triangle|square'). It's like saying.format() can help when using strings which already contain a percent character. Sure. You have to escape them then.CommentedMar 2, 2017 at 16:24
  • 2
    @Alfe You are right, and that is why the answer starts with"One situation where % may help is when you are formatting regex expressions." Specifically, assumea=r"[a-z]{2}" is a regex chunk that you will be used in two different final expressions (e.g.c1 = b + a andc2 = a). Assume thatc1 needs to beformated (e.g.b needs to be formatted runtime), butc2 does not. Then you needa=r"[a-z]{2}" forc2 anda=r"[a-z]{{2}}" forc1.format(...).CommentedMar 2, 2017 at 16:41
Add a comment | 
How to Edit
  • Correct minor typos or mistakes
  • Clarify meaning without changing it
  • Add related resources or links
  • Always respect the author’s intent
  • Don’t use edits to reply to the author
How to Format
  • create code fences with backticks ` or tildes ~
    ```
    like so
    ```
  • add language identifier to highlight code
    ```python
    def function(foo):
        print(foo)
    ```
  • put returns between paragraphs
  • for linebreak add 2 spaces at end
  • _italic_ or**bold**
  • indent code by 4 spaces
  • backtick escapes`like _so_`
  • quote by placing > at start of line
  • to make links (use https whenever possible)
    <https://example.com>
    [example](https://example.com)
    <a href="https://example.com">example</a>
How to Tag

A tag is a keyword or label that categorizes your question with other, similar questions. Choose one or more (up to 5) tags that will help answerers to find and interpret your question.

  • complete the sentence:my question is about...
  • use tags that describe things or concepts that areessential, not incidental to your question
  • favor usingexisting popular tags
  • read the descriptions that appear below the tag

If your question is primarily about a topic for which you can't find a tag:

popular tags »


lang-py

[8]ページ先頭

©2009-2025 Movatter.jp