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*

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
8
  • 14
    There is simply no reason to change working code unless the additional features of the newformat method are really needed ...CommentedJan 28, 2013 at 22:51
  • absolutely agree with you, Tobias, but sometimes it's needed when upgrading to newer versions of PythonCommentedJan 30, 2013 at 13:17
  • 3
    For instance? AFAIK, it hasnever been needed; I don't consider it likely that the% string interpolation would ever go away.CommentedJan 31, 2013 at 13:45
  • 4
    I consider .format() function safer than % for strings. Often I see beginners' mistakes like this"p1=%s p2=%d" % "abc", 2 or"p1=%s p2=%s" % (tuple_p1_p2,). You might think it's the coder's fault but I think it's just weird faulty syntax that looks nice for the quicky-scriptie but is bad for production code.CommentedJan 6, 2014 at 15:07
  • 4
    But I don't like the syntax of .format(), I'd be happier with good old%s,%02d like"p1=%s p2=%02d".format("abc", 2). I blame those who invented and approved the curly braces formatting that needs you to escape them like{{}} and looks ugly imho.CommentedJan 6, 2014 at 15:15
 |  Show3 more comments
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