Python f-String Tutorial – String Formatting in Python Explained with Code Examples (2024)

/ #Python
Python f-String Tutorial – String Formatting in Python Explained with Code Examples (1)
Bala Priya C
Python f-String Tutorial – String Formatting in Python Explained with Code Examples (2)

When you're formatting strings in Python, you're probably used to using the format() method.

But in Python 3.6 and later, you can use f-Strings instead. f-Strings, also called formatted string literals, have a more succinct syntax and can be super helpful in string formatting.

In this tutorial, you'll learn about f-strings in Python, and a few different ways you can use them to format strings.

What are f-Strings in Python?

Strings in Python are usually enclosed within double quotes ("" ) or single quotes (''). To create f-strings, you only need to add an f or an F before the opening quotes of your string.

For example, "This" is a string whereas f"This" is an f-String.

How to Print Variables using Python f-Strings

When using f-Strings to display variables, you only need to specify the names of the variables inside a set of curly braces {}. And at runtime, all variable names will be replaced with their respective values.

If you have multiple variables in the string, you need to enclose each of the variable names inside a set of curly braces.

The syntax is shown below:

f"This is an f-string {var_name} and {var_name}."

▶ Here's an example.

You have two variables, language and school, enclosed in curly braces inside the f-String.

language = "Python"school = "freeCodeCamp"print(f"I'm learning {language} from {school}.")

Let's take a look at the output:

#OutputI'm learning Python from freeCodeCamp.

Notice how the variables language and school have been replaced with Python and freeCodeCamp, respectively.

How to Evaluate Expressions with Python f-Strings

As f-Strings are evaluated at runtime, you might as well evaluate valid Python expressions on the fly.

▶ In the example below, num1 and num2 are two variables. To calculate their product, you may insert the expression num1 * num2 inside a set of curly braces.

num1 = 83num2 = 9print(f"The product of {num1} and {num2} is {num1 * num2}.")

Notice how num1 * num2 is replaced by the product of num1 and num2 in the output.

#OutputThe product of 83 and 9 is 747.

I hope you're now able to see the pattern.

In any f-String, {var_name}, {expression} serve as placeholders for variables and expressions, and are replaced with the corresponding values at runtime.

Head over to the next section to learn more about f-Strings.

How to Use Conditionals in Python f-Strings

Let's start by reviewing Python's if..else statements. The general syntax is shown below:

if condition: # do this if condition is True <true_block>else: # do this if condition is False <false_block>

Here, condition is the expression whose truth value is checked.

  • If the condition evaluates to True, the statements in the if block (<true_block>) are executed.
  • If the condition evaluates to False, the statements in the else block (<false_block>) are executed.

There's a more succinct one-line equivalent to the above if..else blocks. The syntax is given below:

<true_block> if <condition> else <false_block>
In the above syntax,<true block> is what's done when the condition is True, and <false_block> is the statement to be executed when the condition is False.

This syntax may seem a bit different if you haven't seen it before. If it makes things any simpler, you may read it as, "Do this if condition is True; else, do this".

This is often called the ternary operator in Python as it takes 3 operands in some sense – the true block, the condition under test, and the false block.

▶ Let's take a simple example using the ternary operator.

Given a number num, you'd like to check if it's even. You know that a number is even if it's evenly divisible by 2. Let's use this to write our expression, as shown below:

num = 87;print(f"Is num even? {True if num%2==0 else False}")

In the above code snippet,

  • num%2==0 is the condition.
  • If the condition is True, you just return True indicating that num is indeed even, and False otherwise.
#OutputIs num even? False

In the above example, num is 87, which is odd. Hence the conditional statement in the f-String is replaced with False.

How to Call Methods with Python f-Strings

So far, you've only seen how to print values of variables, evaluate expressions, and use conditionals inside f-Strings. And it's time to level up.

▶ Let's take the following example:

author = "jane smith"print(f"This is a book by {author}.")

The above code prints out This is a book by jane smith.

Wouldn't it be better if it prints out This is a book by Jane Smith. instead? Yes, and in Python, string methods return modified strings with the requisite changes.

The title() method in Python returns a new string that's formatted in the title case - the way names are usually formatted (First_name Last_name).

To print out the author's name formatted in title case, you can do the following:

  • use the title() method on the string author,
  • store the returned string in another variable, and
  • print it using an f-String, as shown below:
author = "jane smith"a_name = author.title()print(f"This is a book by {a_name}.")#OutputThis is a book by Jane Smith.

However, you can do this in just one step with f-Strings. You only need to call the title() method on the string author inside the curly braces within the f-String.

author = "jane smith"print(f"This is a book by {author.title()}.")

When the f-String is parsed at runtime,

  • the title() method is called on the string author, and
  • the returned string that's formatted in title case is printed out.

You can verify that in the output shown below.

#OutputThis is a book by Jane Smith.

You can place method calls on any valid Python object inside the curly braces, and they'll work just fine.

How to Call Functions Inside Python f-Strings

In addition to calling methods on Python objects, you can also call functions inside f-Strings. And it works very similarly to what you've seen before.

Just the way variable names are replaced by values, and expressions are replaced with the result of evaluation, function calls are replaced with the return value from the function.

▶ Let's take the function choice() shown below:

def choice(c): if c%2 ==0: return "Learn Python!" else: return "Learn JavaScript!"

The above function returns "Learn Python!" if it's called with an even number as the argument. And it returns "Learn JavaScript!" when the argument in the function call is an odd number.

▶ In the example shown below, you have an f-String that has a call to the choice function inside the curly braces.

print(f"Hello Python, tell me what I should learn. {choice(3)}")

As the argument was an odd number (3), Python suggests that you learn JavaScript, as indicated below:

#OutputHello Python, tell me what I should learn. Learn JavaScript!

If you call the function choice() with an even number, you see that Python tells you to learn Python instead. 🙂

print(f"Hello Python, tell me what I should learn. {choice(10)}")
#OutputHello Python, tell me what I should learn. Learn Python!

And that ends our tutorial on a happy note!

Conclusion

In this tutorial, you've learned how you can use f-Strings to:

  • print values of variables,
  • evaluate expressions,
  • call methods on other Python objects, and
  • make calls to Python functions.

Related Posts

Here's a post by Jessica that explains string formatting using the format() method.

ADVERTIsem*nT

ADVERTIsem*nT

ADVERTIsem*nT

ADVERTIsem*nT

ADVERTIsem*nT

ADVERTIsem*nT

ADVERTIsem*nT

Python f-String Tutorial – String Formatting in Python Explained with Code Examples (3)
Bala Priya C

I am a developer and technical writer from India. I write tutorials on all things programming and machine learning.

If you read this far, thank the author to show them you care.

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started

ADVERTIsem*nT

Python f-String Tutorial – String Formatting in Python Explained with Code Examples (2024)

FAQs

What is F-string formatting in Python? ›

F-strings joined the party in Python 3.6 with PEP 498. Also called formatted string literals, f-strings are string literals that have an f before the opening quotation mark. They can include Python expressions enclosed in curly braces. Python will replace those expressions with their resulting values.

What is string formatting in Python example? ›

String formatting is also known as String interpolation. It is the process of inserting a custom string or variable in predefined text. As a data scientist, you would use it for inserting a title in a graph, show a message or an error, or pass a statement to a function.

How do I use .2f in Python? ›

Explanation:
  1. format() method is called on the float value, specifying '{:.2f}' as the format specifier.
  2. {:.2f} format specifier indicates that the float should be formatted with two decimal places.
  3. The formatted value is stored in formatted_value.
  4. Finally, print() function is used to display the formatted value.

What is the alternative to F-string in Python? ›

Alternative Formatting Methods. While Python's f-string formatting is a powerful and efficient tool, it's not the only way to format strings in Python. Two other popular methods are the str. format() method and the % operator.

Should I use F-strings or format? ›

Although there are other ways for formatting strings, the Zen of Python states that simple is better than complex and practicality beats purity--and f-strings are really the most simple and practical way for formatting strings. They are also faster any of the previous more commonly used string formatting mechanisms.

How to write a string in Python? ›

Assigning a string in Python is done by enclosing the text within either single quotes (' '), double quotes (" "), or triple quotes (''' ''' or """ """).

What is a string explain with examples in Python? ›

In Python, a string is a sequence of characters. For example, "hello" is a string containing a sequence of characters 'h' , 'e' , 'l' , 'l' , and 'o' .

How to format python code? ›

You can format your code by right-clicking on the editor and selecting Format Document, or by using the Ctrl+Shift+I keyboard shortcut.

What is an example of string coding? ›

The most direct way to create a string is to write: String greeting = "Hello world!"; In this case, "Hello world!" is a string literal—a series of characters in your code that is enclosed in double quotes.

What is 3.2 F in Python? ›

It means print as a floating point at least 3 wide and a precision of 2. This is a format specifier of a floating point number with 2 decimals and at least one digit left of the decimal point. The number 12.34567 would be displayed as 12.35.

What does 0.2 F do in Python? ›

%f is for floats. 02:01 In addition to the indicator, you can also put formatting information. The 0.2 here tells Python to put as many digits to the left of the decimal as you like, but only 2 significant digits to the right. 02:15 This formatting will work in more than just floats.

What is 2.2 F in Python? ›

You're misunderstanding what %2.2f means. It means "give the float 2 columns total, and display 2 positions after the radix point". Perhaps you want %5.2f instead. See the Python documentation for a full overview.

How does F string work in Python? ›

In Python source code, an f-string is a literal string, prefixed with 'f', which contains expressions inside braces. The expressions are replaced with their values.

How do I convert all types to string in Python? ›

Using map() Function

str() function; that will convert the given data type into the string data type. An iterable sequence; each and every element in the sequence will be called by str() function.

How do you replace a specific string in a string in Python? ›

You can easily use the replace() function, you just need to call the function with a string object and pass the strings as a parameter. The first parameter is the substring you want to replace, and the second parameter is the string you want to replace with.

What does print f mean in Python? ›

'f' in printf stands for formatted data printing, it is used for printing with formatted values as output.

What is the F-string concatenation in Python? ›

Concatenating Strings in Python Using f-Strings

Python f-strings are prefixed by the letter f and allow you to place variables to interpolate into square brackets. The variables are evaluated at run-time, and their string representation is placed into the string. print(f'Welcome to {website}!' )

What does format() do in Python? ›

The format() method formats the specified value(s) and insert them inside the string's placeholder. The placeholder is defined using curly brackets: {}. Read more about the placeholders in the Placeholder section below. The format() method returns the formatted string.

What is %s formatting in Python? ›

The %s operator is put where the string is to be specified. The number of values you want to append to a string should be equivalent to the number specified in parentheses after the % operator at the end of the string value. The following Python code illustrates the way of performing string formatting.

Top Articles
Latest Posts
Article information

Author: Gregorio Kreiger

Last Updated:

Views: 6350

Rating: 4.7 / 5 (57 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Gregorio Kreiger

Birthday: 1994-12-18

Address: 89212 Tracey Ramp, Sunside, MT 08453-0951

Phone: +9014805370218

Job: Customer Designer

Hobby: Mountain biking, Orienteering, Hiking, Sewing, Backpacking, Mushroom hunting, Backpacking

Introduction: My name is Gregorio Kreiger, I am a tender, brainy, enthusiastic, combative, agreeable, gentle, gentle person who loves writing and wants to share my knowledge and understanding with you.