Bird
Raised Fist0
Pythonprogramming~20 mins

print() parameters and formatting 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
🎖️
Print Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of print() with sep and end parameters
What is the output of this Python code?
print('A', 'B', 'C', sep='-', end='!')
print('D')
Python
print('A', 'B', 'C', sep='-', end='!')
print('D')
AA B C!D
BA B C\nD
CA-B-C\nD
DA-B-C!D
Attempts:
2 left
💡 Hint
Remember that sep changes the separator between items and end changes what is printed at the end.
Predict Output
intermediate
2:00remaining
Using flush parameter in print()
What does this code print?
import sys
print('Hello', flush=True)
print('World', flush=False)
Python
import sys
print('Hello', flush=True)
print('World', flush=False)
AHello\nWorld\n
BHelloWorld
CHello\nWorld
DHello World
Attempts:
2 left
💡 Hint
The flush parameter forces the output buffer to write immediately.
Predict Output
advanced
2:00remaining
Formatted string with print() and f-string
What is the output of this code?
name = 'Sam'
age = 7
print(f'{name} is {age} years old.')
Python
name = 'Sam'
age = 7
print(f'{name} is {age} years old.')
A{name} is {age} years old.
Bname is age years old.
CSam is 7 years old.
DSam is age years old.
Attempts:
2 left
💡 Hint
f-strings replace variables inside curly braces with their values.
Predict Output
advanced
2:00remaining
Using print() with multiple end parameters
What is the output of this code?
print('X', end='-')
print('Y', end='*')
print('Z')
Python
print('X', end='-')
print('Y', end='*')
print('Z')
AX-Y*Z\n
BX-Y-Z\n
CX Y Z\n
DX-Y*Z
Attempts:
2 left
💡 Hint
Each print uses its own end parameter to decide what to print after the content.
🧠 Conceptual
expert
2:00remaining
Understanding print() with file parameter
What happens when you run this code?
import sys
print('Error message', file=sys.stderr)
Python
import sys
print('Error message', file=sys.stderr)
APrints 'Error message' to the standard output (stdout).
BPrints 'Error message' to the error output stream (stderr).
CRaises a TypeError because file=sys.stderr is invalid.
DPrints nothing because stderr is not connected.
Attempts:
2 left
💡 Hint
The file parameter directs print output to a specific stream.

Practice

(1/5)
1. What does the sep parameter do in the print() function?
easy
A. It changes the separator between multiple items printed.
B. It changes the ending character of the printed line.
C. It formats numbers inside the print statement.
D. It pauses the program before printing.

Solution

  1. Step 1: Understand the role of sep

    The sep parameter defines what string is placed between multiple items printed.
  2. Step 2: Compare with other parameters

    end changes line ending, formatting is done by f-strings, and pausing is unrelated.
  3. Final Answer:

    It changes the separator between multiple items printed. -> Option A
  4. Quick Check:

    sep = separator [OK]
Hint: Remember: sep controls spacing between items [OK]
Common Mistakes:
  • Confusing sep with end parameter
  • Thinking sep formats numbers
  • Assuming sep pauses output
2. Which of the following is the correct syntax to print two words separated by a dash using print()?
easy
A. print('hello' - 'world')
B. print('hello' + 'world', sep='-')
C. print('hello', 'world', end='-')
D. print('hello', 'world', sep='-')

Solution

  1. Step 1: Identify correct use of sep

    Using sep='-' between multiple arguments prints them separated by a dash.
  2. Step 2: Check syntax correctness

    print('hello', 'world', sep='-') uses correct syntax. print('hello' + 'world', sep='-') concatenates strings before printing, ignoring sep. print('hello', 'world', end='-') uses end, which changes line ending, not separator. print('hello' - 'world') is invalid syntax.
  3. Final Answer:

    print('hello', 'world', sep='-') -> Option D
  4. Quick Check:

    sep='-' joins words with dash [OK]
Hint: Use sep between items, not inside strings [OK]
Common Mistakes:
  • Using + operator with sep parameter
  • Confusing sep with end
  • Trying to subtract strings
3. What is the output of this code?
print('A', 'B', 'C', sep='*', end='!')
print('D')
medium
A. A*B*C!D
B. A B C ! D
C. A*B*C D
D. A B C!D

Solution

  1. Step 1: Analyze first print()

    It prints 'A', 'B', 'C' separated by '*', ending with '!'. So output is 'A*B*C!'
  2. Step 2: Analyze second print()

    It prints 'D' on the same line because first print ended with '!' (no newline).
  3. Final Answer:

    A*B*C!D -> Option A
  4. Quick Check:

    sep='*', end='!' joins and ends line [OK]
Hint: Remember end='' keeps output on same line [OK]
Common Mistakes:
  • Assuming default space separator
  • Thinking end adds newline
  • Ignoring end parameter effect
4. The following code prints 'Score:-10'. What is the fix to print 'Score: 10'?
print('Score:', score, sep='-')

Assuming score = 10.
medium
A. Convert score to string before printing.
B. Change sep to end parameter.
C. Remove sep parameter or use it correctly between multiple items.
D. Add parentheses around score.

Solution

  1. Step 1: Understand sep usage

    The sep='-' parameter places '-' between 'Score:' and score, resulting in 'Score:-10'.
  2. Step 2: Identify the fix

    To print 'Score: 10' with default space separator, remove the sep parameter.
  3. Final Answer:

    Remove sep parameter or use it correctly between multiple items. -> Option C
  4. Quick Check:

    remove sep -> default space [OK]
Hint: Use sep only when printing multiple items [OK]
Common Mistakes:
  • Confusing sep with end parameter
  • Trying to convert variables unnecessarily
  • Using sep with single string
5. How can you print the number 7.12345 rounded to 2 decimal places using print() and f-strings?
hard
A. print(f'{7.12345:2f}')
B. print(f'{7.12345:.2f}')
C. print(f'{7.12345:.2}')
D. print(f'{7.12345:.f2}')

Solution

  1. Step 1: Understand f-string formatting

    To round a float to 2 decimals, use :.2f inside the braces.
  2. Step 2: Check each option

    print(f'{7.12345:.2f}') uses correct syntax {value:.2f}. print(f'{7.12345:2f}') misses the dot before 2. print(f'{7.12345:.2}') uses wrong format specifier. print(f'{7.12345:.f2}') has incorrect order.
  3. Final Answer:

    print(f'{7.12345:.2f}') -> Option B
  4. Quick Check:

    Use .2f to round floats in f-strings [OK]
Hint: Use .2f inside f-string to round floats [OK]
Common Mistakes:
  • Omitting the dot before precision
  • Using wrong format specifiers
  • Mixing order of letters and numbers