Bird
Raised Fist0
Pythonprogramming~20 mins

Formatting using format() method in Python - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Format Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of positional and keyword arguments in format()
What is the output of this code snippet?
Python
result = "{1} scored {score} points".format("Alice", "Bob", score=95)
print(result)
ABob scored 95 points
BAlice scored 95 points
C1 scored 95 points
DIndexError
Attempts:
2 left
💡 Hint
Remember that numbers inside curly braces refer to positional arguments by index.
Predict Output
intermediate
2:00remaining
Using format() with alignment and width
What will this code print?
Python
print("|{:<10}|{:^10}|{:>10}|".format('left', 'center', 'right'))
A|left |center | right|
B| left| center |right |
C|left|center|right|
D|left | center | right|
Attempts:
2 left
💡 Hint
Check the alignment symbols: < for left, ^ for center, > for right.
🧠 Conceptual
advanced
2:00remaining
Understanding nested replacement fields
What is the output of this code?
Python
data = {'name': 'John', 'age': 30}
print("{0[name]} is {0[age]} years old".format(data))
AJohn is 30 years old
B{0[name]} is {0[age]} years old
CTypeError
DKeyError
Attempts:
2 left
💡 Hint
The 0 refers to the first argument, which is a dictionary.
Predict Output
advanced
2:00remaining
Formatting floats with precision and padding
What does this code print?
Python
print("{num:0>8.3f}".format(num=12.34567))
A12.34600
B0012.346
C000012.3467
D12.34567
Attempts:
2 left
💡 Hint
0>8 means pad with zeros on the left to width 8, .3f means 3 decimal places.
Predict Output
expert
2:30remaining
Using format() with dynamic field names and expressions
What is the output of this code?
Python
person = {'first': 'Jane', 'last': 'Doe'}
index = 'first'
print("{0[{1}]} {0[last]}".format(person, index))
AKeyError
Bfirst Doe
CJane Doe
DIndexError
Attempts:
2 left
💡 Hint
The second argument is used as a key to access the dictionary in the first argument.

Practice

(1/5)
1.

What does the format() method do in Python?

easy
A. It inserts values into a string at placeholders marked by {}.
B. It changes the case of a string to uppercase.
C. It splits a string into a list of words.
D. It removes whitespace from the start and end of a string.

Solution

  1. Step 1: Understand the purpose of format()

    The format() method is used to insert values into a string where {} placeholders are present.
  2. Step 2: Compare options

    Only It inserts values into a string at placeholders marked by {}. correctly describes this behavior. Other options describe different string methods.
  3. Final Answer:

    It inserts values into a string at placeholders marked by {} -> Option A
  4. Quick Check:

    format() inserts values into {} [OK]
Hint: Remember: {} marks where values go in format() [OK]
Common Mistakes:
  • Confusing format() with upper() or strip()
  • Thinking format() splits strings
  • Assuming format() changes string case
2.

Which of the following is the correct syntax to insert the value 42 into the string using format()?

"The answer is {}"._____
easy
A. "format[42]"
B. "format 42"
C. "format{42}"
D. "format(42)"

Solution

  1. Step 1: Recall correct method call syntax

    The format() method is called with parentheses and the value inside, like format(42).
  2. Step 2: Check options for correct syntax

    Only "format(42)" uses parentheses correctly. Options A, C, and D use incorrect brackets or missing parentheses.
  3. Final Answer:

    "format(42)" -> Option D
  4. Quick Check:

    Method calls use parentheses () [OK]
Hint: Use parentheses () to call methods like format() [OK]
Common Mistakes:
  • Using square brackets [] instead of parentheses
  • Using curly braces {} instead of parentheses
  • Omitting parentheses when calling methods
3.

What is the output of the following code?

print("{0} + {1} = {2}".format(3, 4, 3+4))
medium
A. "7 + 7 = 14"
B. "3 + 4 = 7"
C. "3 + 4 = 3+4"
D. "{0} + {1} = {2}"

Solution

  1. Step 1: Understand placeholders and arguments

    The placeholders {0}, {1}, {2} are replaced by the first, second, and third arguments of format(), which are 3, 4, and 7 respectively.
  2. Step 2: Substitute values into the string

    Replacing placeholders gives the string "3 + 4 = 7".
  3. Final Answer:

    "3 + 4 = 7" -> Option B
  4. Quick Check:

    Placeholders replaced by arguments [OK]
Hint: Numbered placeholders match format() arguments by position [OK]
Common Mistakes:
  • Printing placeholders literally without replacement
  • Confusing expression with string output
  • Mixing up argument order
4.

Find the error in this code snippet:

"Hello, {}".format
medium
A. format() cannot be used with strings.
B. Incorrect placeholder syntax; should be {0}.
C. Missing parentheses to call the format method.
D. The string should use single quotes instead of double quotes.

Solution

  1. Step 1: Check method call syntax

    The code uses format without parentheses, so the method is not called.
  2. Step 2: Identify the fix

    Adding parentheses like format() calls the method and inserts values.
  3. Final Answer:

    Missing parentheses to call the format method. -> Option C
  4. Quick Check:

    Methods need () to execute [OK]
Hint: Always add () to call methods like format() [OK]
Common Mistakes:
  • Forgetting parentheses when calling methods
  • Thinking placeholders must be numbered
  • Believing quotes style affects format()
5.

How would you format the number 7.12345 to show only two decimal places using format()?

"{:.2f}".format(7.12345)

What is the output?

hard
A. "7.12"
B. "7.12345"
C. "7.1"
D. "7.00"

Solution

  1. Step 1: Understand format specifier :.2f

    This means format the number as a float with 2 digits after the decimal point.
  2. Step 2: Apply formatting to 7.12345

    The number rounds to 7.12 when limited to two decimal places.
  3. Final Answer:

    "7.12" -> Option A
  4. Quick Check:

    Two decimals with :.2f rounds number [OK]
Hint: Use {:.2f} to format floats with 2 decimals [OK]
Common Mistakes:
  • Not using format specifiers correctly
  • Expecting original number without rounding
  • Confusing decimal places with total digits