Bird
Raised Fist0
Pythonprogramming~10 mins

String formatting using f-strings in Python - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - String formatting using f-strings
Start
Define variables
Write f-string with placeholders
Python replaces placeholders with variable values
Print or use formatted string
End
This flow shows how Python takes variables and inserts their values into a string using f-strings, then outputs the final formatted string.
Execution Sample
Python
name = "Anna"
age = 30
message = f"Hello, {name}. You are {age} years old."
print(message)
This code creates a greeting message by inserting variables into a string using an f-string.
Execution Table
StepActionExpression EvaluatedResultOutput
1Assign namename = "Anna"name = "Anna"
2Assign ageage = 30age = 30
3Create f-stringf"Hello, {name}. You are {age} years old.""Hello, Anna. You are 30 years old."
4Print messageprint(message)Hello, Anna. You are 30 years old.
💡
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
nameundefined"Anna""Anna""Anna""Anna"
ageundefinedundefined303030
messageundefinedundefinedundefined"Hello, Anna. You are 30 years old.""Hello, Anna. You are 30 years old."
Key Moments - 3 Insights
Why do we put variables inside curly braces {} in the f-string?
Curly braces tell Python where to insert the value of the variable inside the string, as shown in step 3 of the execution table.
What happens if we forget the 'f' before the string?
Without the 'f', Python treats the string as normal text and does not replace variables, so placeholders like {name} stay as is, not shown in this example but important to remember.
Can we use expressions inside the curly braces?
Yes, you can put expressions like {age + 5} inside the braces, and Python will calculate and insert the result when creating the string.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'message' after step 3?
A"Hello, Anna. You are 30 years old."
B"Hello, {name}. You are {age} years old."
Cundefined
D"Hello, Anna. You are {age} years old."
💡 Hint
Check the 'Result' column in row for step 3 in the execution_table.
At which step is the final formatted string printed?
AStep 1
BStep 4
CStep 2
DStep 3
💡 Hint
Look at the 'Output' column in the execution_table to find when the string appears.
If we change age to 35, how does the message change in the variable_tracker?
AThe message stays the same.
BThe message becomes undefined.
CThe message updates to "Hello, Anna. You are 35 years old."
DThe message shows "Hello, Anna. You are {age} years old."
💡 Hint
Refer to the 'message' row in variable_tracker and imagine age changing before step 3.
Concept Snapshot
f-strings format strings by placing variables inside curly braces {}.
Start the string with f"..." to enable this.
Python replaces placeholders with variable values.
You can include expressions inside braces.
This is a clean, readable way to build strings.
Full Transcript
This lesson shows how Python uses f-strings to insert variable values into strings. We start by defining variables 'name' and 'age'. Then we write an f-string with placeholders {name} and {age}. Python replaces these placeholders with the actual values. Finally, the formatted string is printed. The execution table traces each step, showing how variables change and when the string is created and printed. Key points include the use of curly braces to mark variables, the need for the 'f' prefix, and the ability to use expressions inside the braces. The visual quiz tests understanding of these steps and variable changes.

Practice

(1/5)
1. What is the main purpose of using f-strings in Python?
easy
A. To easily insert variables or expressions inside strings
B. To create lists from strings
C. To convert strings to uppercase
D. To repeat strings multiple times

Solution

  1. Step 1: Understand f-string usage

    F-strings allow embedding variables or expressions inside strings using curly braces {}.
  2. Step 2: Compare options

    Only To easily insert variables or expressions inside strings describes this purpose correctly; others describe unrelated string operations.
  3. Final Answer:

    To easily insert variables or expressions inside strings -> Option A
  4. Quick Check:

    f-strings = insert variables in strings [OK]
Hint: Remember: f-strings embed variables with curly braces {} [OK]
Common Mistakes:
  • Confusing f-strings with string methods like upper()
  • Thinking f-strings create lists
  • Assuming f-strings repeat strings
2. Which of the following is the correct syntax to use an f-string to insert variable name into a string?
easy
A. "Hello, $name!"
B. f"Hello, {name}!"
C. f'Hello, $name!'
D. "Hello, {name}!"

Solution

  1. Step 1: Identify f-string syntax

    An f-string starts with the letter f before the quotes and uses curly braces {} to insert variables.
  2. Step 2: Check each option

    f"Hello, {name}!" correctly uses f"Hello, {name}!". Options A and B lack the f prefix, and C uses incorrect syntax with $name.
  3. Final Answer:

    f"Hello, {name}!" -> Option B
  4. Quick Check:

    f-string = f"text {var}" [OK]
Hint: f-string must start with f and use {variable} inside quotes [OK]
Common Mistakes:
  • Omitting the f before the string
  • Using $ instead of curly braces
  • Using single quotes without f prefix
3. What will be the output of this code?
name = "Alice"
age = 30
print(f"{name} is {age} years old.")
medium
A. name is age years old.
B. {name} is {age} years old.
C. SyntaxError
D. Alice is 30 years old.

Solution

  1. Step 1: Evaluate variables inside f-string

    The variables name and age are replaced by their values "Alice" and 30 inside the string.
  2. Step 2: Understand print output

    The print statement outputs the string with variables replaced: "Alice is 30 years old.".
  3. Final Answer:

    Alice is 30 years old. -> Option D
  4. Quick Check:

    f-string replaces {name} and {age} with values [OK]
Hint: f-string prints variable values, not variable names [OK]
Common Mistakes:
  • Expecting curly braces to print literally
  • Confusing variable names with values
  • Thinking f-string causes syntax error here
4. Find the error in this code snippet:
age = 25
print(f"Age is {age")
medium
A. Missing closing brace '}' in f-string
B. Missing f before the string
C. Variable age is not defined
D. Incorrect use of quotes

Solution

  1. Step 1: Check f-string braces

    The f-string has an opening brace { but no matching closing brace }, causing a syntax error.
  2. Step 2: Verify other parts

    The f prefix is present, variable age is defined, and quotes are correct.
  3. Final Answer:

    Missing closing brace '}' in f-string -> Option A
  4. Quick Check:

    Every { must have a matching } in f-string [OK]
Hint: Count braces in f-string; each { needs a } [OK]
Common Mistakes:
  • Forgetting to close curly braces
  • Thinking missing f causes this error
  • Assuming variable is undefined
5. You want to print the price of an item with 2 decimal places using f-strings. Which code correctly formats the price variable?
price = 9.8765
# Choose the correct print statement
hard
A. print(f"Price: ${price:2f}")
B. print(f"Price: ${price:.2}")
C. print(f"Price: ${price:.2f}")
D. print(f"Price: ${price:.2d}")

Solution

  1. Step 1: Understand format specifier for decimals

    To format a float with 2 decimal places, use :.2f inside the curly braces.
  2. Step 2: Check each option

    print(f"Price: ${price:.2f}") uses {price:.2f} correctly. print(f"Price: ${price:2f}") misses the dot, print(f"Price: ${price:.2}") misses the type specifier, and print(f"Price: ${price:.2d}") uses invalid d for decimals.
  3. Final Answer:

    print(f"Price: ${price:.2f}") -> Option C
  4. Quick Check:

    Use :.2f to format float with 2 decimals [OK]
Hint: Use :.2f inside {} to show 2 decimal places [OK]
Common Mistakes:
  • Omitting the dot before precision
  • Using integer format 'd' for floats
  • Leaving out the type specifier