Don't forget that f-strings haven't been around forever. It may be partly old habits, it may be not keeping up to date with features, they may still be wanting to target a minimum python version that didn't support f-strings. I'd tend to prefer to use f-strings, but I wouldn't crucify someone for using perfectly valid language constructs. Answer from nathanjell on reddit.com
๐ŸŒ
W3Schools
w3schools.com โ€บ python โ€บ ref_string_format.asp
Python String format() Method
Remove List Duplicates Reverse ... Q&A Python Bootcamp Python Training ... The format() method formats the specified value(s) and insert them inside the string's placeholder....
๐ŸŒ
Python
docs.python.org โ€บ 3 โ€บ library โ€บ string.html
string โ€” Common string operations
It is exposed as a separate function for cases where you want to pass in a predefined dictionary of arguments, rather than unpacking and repacking the dictionary as individual arguments using the *args and **kwargs syntax. vformat() does the work of breaking up the format string into character data and replacement fields.
Discussions

is there any difference between using string.format() or an fstring?
Don't forget that f-strings haven't been around forever. It may be partly old habits, it may be not keeping up to date with features, they may still be wanting to target a minimum python version that didn't support f-strings. I'd tend to prefer to use f-strings, but I wouldn't crucify someone for using perfectly valid language constructs. More on reddit.com
๐ŸŒ r/Python
145
317
October 9, 2022
What's better to use? (%), (f"string") or (.format())?
There's no rule, it's always about what you find the most readable. In almost all cases, f-strings will most likely be the winner. There is a reason they were introduced. More on reddit.com
๐ŸŒ r/learnpython
51
49
November 25, 2024
Why use string.format instead of f strings?
In the example you provided, there's no reason not to use an f-string. Corey Schafer's videos are good, so I'm going to assume he just didn't cover f-strings yet. But sometimes, str.format can be useful. You can construct string templates and provide the arguments later, while f-strings are instantly evaluated. # Not the best use-case, but I wanted to focus on the idea example = "Hello, {}, how are you?" john = example.format('John') kevin = example.format('Kevin') More on reddit.com
๐ŸŒ r/learnpython
21
14
March 6, 2021
String formatting, what's the best practice ?
3 is IMO the best but it's not supported on anything before Python 3.6. 2 is good but I personally prefer to put the numbers in the placeholders as it just makes it easier to track which of the parameters to format is slotting in each placeholder. More on reddit.com
๐ŸŒ r/learnpython
6
7
November 7, 2017
๐ŸŒ
Mimo
mimo.org โ€บ glossary โ€บ python โ€บ formatted-strings
Python Formatted Strings / f-string formatting Guide
Start your coding journey with Python. Learn basics, data types, control flow, and more ... name = "Alice" item_count = 5 price = 19.99 # Basic f-string usage greeting = f"Hello, {name}." print(greeting) # Outputs: Hello, Alice. # Using expressions and number formatting total_cost = item_count * price receipt = f"Your total is ${total_cost:.2f} for {item_count} items." print(receipt) # Outputs: Your total is $99.95 for 5 items.
๐ŸŒ
Bentley
cissandbox.bentley.edu โ€บ sandbox โ€บ wp-content โ€บ uploads โ€บ 2022-02-10-Documentation-on-f-strings-Updated.pdf pdf
Updated 2022 A Guide to Formatting with f-strings in Python
Percentage. Multiplies the number by 100 and displays in fixed ('f') format, ... The variable, variable, is enclosed in curly braces { }. When variable = 10, the f-string
๐ŸŒ
PyFormat
pyformat.info
PyFormat: Using % and .format() for great good!
With this site we try to show you the most common use-cases covered by the old and new style string formatting API with practical examples. All examples on this page work out of the box with with Python 2.7, 3.2, 3.3, 3.4, and 3.5 without requiring any additional libraries.
๐ŸŒ
Python documentation
docs.python.org โ€บ 3 โ€บ tutorial โ€บ inputoutput.html
7. Input and Output โ€” Python 3.14.6 documentation
The example also prints percentage multiplied by 100, with 2 decimal places and followed by a percent sign (see Format specification mini-language for details). Finally, you can do all the string handling yourself by using string slicing and concatenation operations to create any layout you ...
Find elsewhere
๐ŸŒ
mkaz.blog
mkaz.blog โ€บ working-with-python โ€บ string-formatting
Python String Formatting: Complete Guide - mkaz.blog
This comprehensive guide covers everything you need to know about Python string formatting, from basic f-strings to advanced formatting techniques.
๐ŸŒ
YouTube
youtube.com โ€บ dave gray
Python f-Strings - Advanced String Formatting tutorial for beginners - YouTube
Web Dev Roadmap for Beginners (Free!): https://bit.ly/DaveGrayWebDevRoadmapLearn how to use Python f-strings to format your strings in a less verbose way and...
Published ย  May 12, 2023
๐ŸŒ
OpenStax
openstax.org โ€บ books โ€บ introduction-python-programming โ€บ pages โ€บ 3-2-formatted-strings
3.2 Formatted strings - Introduction to Python Programming | OpenStax
March 13, 2024 - A formatted string literal (or f-string) is a string literal that is prefixed with "f" or "F". A replacement field is an expression in curly braces ({}) inside an f-string. Ex: The string f"Good morning, {first} {last}!" has two replacement ...
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ string-formatting-in-python
String Formatting in Python - GeeksforGeeks
The format uses placeholder names formed by $ with valid Python identifiers (alphanumeric characters and underscores). Surrounding the placeholder with braces allows it to be followed by more alphanumeric letters with no intervening spaces.
Published ย  March 18, 2026
๐ŸŒ
Python
peps.python.org โ€บ pep-3101
PEP 3101 โ€“ Advanced String Formatting | peps.python.org
This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing โ€˜%โ€™ string formatting operator. Python currently provides two methods of string interpolation:
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ python-string-format-method
Python String format() Method - GeeksforGeeks
July 11, 2025 - format() method in Python is a tool used to create formatted strings. By embedding variables or values into placeholders within a template string, we can construct dynamic, well-organized output.
๐ŸŒ
Reddit
reddit.com โ€บ r/learnpython โ€บ what's better to use? (%), (f"string") or (.format())?
r/learnpython on Reddit: What's better to use? (%), (f"string") or (.format())?
November 25, 2024 -

I was trying to make a, silly program in which you can do some random things. I used arguments (%)in the past, but it's a bit hard to write like the identification of the variable, like there is so much types (%s, %f, %2f, %d, %g, %e...) and I want to take the easiest to write or the easiest to debug.

here are some examples of using each one:

  using (%):
name = "Imaginary_Morning"
age = 13
print("This profile is called %s and it has %d years old." % (name, age))
  
using (f"string"):
name = "Imaginary_Morning"
age = 13
print(f"This profile is called {name} and it has {age} years old.")

  using (.format()):
name = "Imaginary_Morning"
age = 13
print("This profile is called {} and it has {} years old.".format(name, age))
๐ŸŒ
Medium
medium.com โ€บ the-system-builder-journal โ€บ string-formatting-in-python-d287c0bcac9e
String Formatting in Python
February 5, 2026 - In above example, I have used multi line string along with placeholder where I want to place value of variables. If you observe properly, I have used %s for strings and %d for integer value also variables in tuple that we used after % are in order of their position in the string. Another way to format a string is to use .format method.
๐ŸŒ
Python Reference
python-reference.readthedocs.io โ€บ en โ€บ latest โ€บ docs โ€บ str โ€บ formatting.html
% (String Formatting Operator) โ€” Python Reference (The Right Way) 0.1 documentation
When the right argument is a dictionary (or other mapping type), then the formats in the string must include a parenthesised mapping key into that dictionary inserted immediately after the โ€˜%โ€™ character. The mapping key selects the value to be formatted from the mapping. For example: >>> print '%(language)s has %(number)03d quote types.' % \ ... {"language": "Python", "number": 2} Python has 002 quote types.
๐ŸŒ
Reddit
reddit.com โ€บ r/learnpython โ€บ why use string.format instead of f strings?
r/learnpython on Reddit: Why use string.format instead of f strings?
March 6, 2021 -

Now AFAIK there are some times when you need to use .format() to do something (off the top of my head, displaying a number to a certain number of digits), but as far as just basic things like displaying an email address, something like:

return "{}.{}@email.com".format(first, last)

why not just do f"{first}.{last}@email.com?

I only ask this because this example is in a Corey Schafer video I'm watching and was wondering if I'm missing something or if this is just one of those bad habits that programmers more knowledgeable than me just might have

๐ŸŒ
W3Schools
w3schools.com โ€บ PYTHON โ€บ python_strings_format.asp
Python - Format Strings
Python Examples Python Compiler ... Try it Yourself ยป ยท But we can combine strings and numbers by using f-strings or the format() method!...
๐ŸŒ
W3Schools
w3schools.com โ€บ PYTHON โ€บ python_string_formatting.asp
Python String Formatting
To format values in an f-string, add placeholders {}, a placeholder can contain variables, operations, functions, and modifiers to format the value. ... A placeholder can also include a modifier to format the value.
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ what-does-s-mean-in-a-python-format-string
What does %s mean in a Python format string? - GeeksforGeeks
July 23, 2025 - In Python, the %s format specifier is used to represent a placeholder for a string in a string formatting operation. It allows us to insert values dynamically into a string, making our code more flexible and readable.