Bird
Raised Fist0
Pythonprogramming~10 mins

abs() and round() in Python - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to get the absolute value of -7.

Python
result = [1](-7)
print(result)
Drag options to blanks, or click blank then click option'
Astr
Bround
Cint
Dabs
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using round() instead of abs() will not remove the minus sign.
Using int() or str() won't change the sign of the number.
2fill in blank
medium

Complete the code to round the number 3.14159 to 2 decimal places.

Python
result = round(3.14159, [1])
print(result)
Drag options to blanks, or click blank then click option'
A2
B1
C3
D0
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using 0 will round to the nearest whole number.
Using 1 or 3 will round to the wrong number of decimals.
3fill in blank
hard

Fix the error in the code to correctly round the number 5.6789 without decimals.

Python
result = round([1])
print(result)
Drag options to blanks, or click blank then click option'
Around(5.6789)
B'5.6789'
C5.6789
Dint(5.6789)
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Passing a string instead of a number causes an error.
Calling round() inside round() is incorrect.
4fill in blank
hard

Fill both blanks to create a dictionary with words as keys and their absolute length difference from 4 as values.

Python
words = ['cat', 'house', 'dog', 'tree']
length_diff = {word: abs(len(word) [1] 4) for word in words if len(word) [2] 2}
print(length_diff)
Drag options to blanks, or click blank then click option'
A-
B+
C>
D<
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using '+' instead of '-' changes the meaning.
Using '<' instead of '>' filters the wrong words.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase words as keys, their rounded lengths as values, only if length is greater than 3.

Python
words = ['apple', 'bat', 'carrot', 'dog']
result = { [1]: round(len(word), [2]) for word in words if len(word) [3] 3 }
print(result)
Drag options to blanks, or click blank then click option'
Aword.upper()
B1
C>
Dword.lower()
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using word.lower() instead of uppercase keys.
Using '<' instead of '>' filters wrong words.
Rounding to 0 decimals changes output meaning.

Practice

(1/5)
1. What does the Python function abs() do when given a number?
easy
A. Rounds the number to the nearest integer
B. Returns the negative of the number
C. Converts the number to a string
D. Returns the positive distance of the number from zero

Solution

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

    The abs() function returns how far a number is from zero without considering its sign.
  2. Step 2: Compare with other options

    Rounding, string conversion, or negation are different functions; only abs() returns the positive distance.
  3. Final Answer:

    Returns the positive distance of the number from zero -> Option D
  4. Quick Check:

    abs(-5) = 5 [OK]
Hint: Think: absolute means distance without sign [OK]
Common Mistakes:
  • Confusing abs() with round()
  • Thinking abs() changes the number's sign
  • Assuming abs() converts to string
2. Which of the following is the correct way to round the number 3.14159 to 2 decimal places in Python?
easy
A. round(3.14159, '2')
B. round(3.14159.2)
C. round(3.14159, 2)
D. round(3.14159, 2.0)

Solution

  1. Step 1: Check the syntax of round()

    The round() function takes a number and an integer for decimal places, like round(number, digits).
  2. Step 2: Validate each option

    round(3.14159, 2) uses correct syntax with an integer 2. round(3.14159.2) has a dot instead of a comma. round(3.14159, '2') uses a string '2' which is invalid. round(3.14159, 2.0) uses a float 2.0 which is accepted as decimal places.
  3. Final Answer:

    round(3.14159, 2) -> Option C
  4. Quick Check:

    round(3.14159, 2) = 3.14 [OK]
Hint: Use comma and integer for decimals in round() [OK]
Common Mistakes:
  • Using dot instead of comma between arguments
  • Passing decimal places as string
  • Passing decimal places as float
3. What is the output of this code?
print(abs(-7.8))
print(round(2.675, 2))
medium
A. 7.8 and 2.68
B. 7.8 and 2.67
C. -7.8 and 2.68
D. -7.8 and 2.67

Solution

  1. Step 1: Calculate abs(-7.8)

    The absolute value of -7.8 is 7.8, so the first print outputs 7.8.
  2. Step 2: Calculate round(2.675, 2)

    Due to floating-point rounding, 2.675 rounds to 2.67 (not 2.68) in Python.
  3. Final Answer:

    7.8 and 2.67 -> Option B
  4. Quick Check:

    abs(-7.8) = 7.8, round(2.675, 2) = 2.67 [OK]
Hint: Remember floating-point quirks in round() [OK]
Common Mistakes:
  • Expecting round(2.675, 2) to be 2.68
  • Forgetting abs() returns positive value
  • Mixing signs in output
4. The following code has an error. What is it?
num = -4.5
print(round(abs(num), 1.0))
medium
A. round() decimal places must be an integer, not float
B. abs() cannot take negative numbers
C. print() syntax is incorrect
D. num variable is not defined

Solution

  1. Step 1: Analyze abs(num)

    The abs() function works fine with negative numbers, so no error here.
  2. Step 2: Check round() arguments

    The second argument to round() must be an integer, but 1.0 is a float, causing a TypeError.
  3. Final Answer:

    round() decimal places must be an integer, not float -> Option A
  4. Quick Check:

    round(..., 1.0) causes error [OK]
Hint: Decimal places in round() must be int, not float [OK]
Common Mistakes:
  • Thinking abs() can't take negatives
  • Passing float instead of int for decimals
  • Assuming print() syntax error
5. You have a list of numbers: nums = [-3.1415, 2.718, -1.414, 0]. You want to create a new list with the absolute values rounded to 2 decimal places. Which code does this correctly?
hard
A. rounded = [round(abs(x), 2) for x in nums]
B. rounded = [round(x, 2) for x in nums]
C. rounded = [round(abs(x), '2') for x in nums]
D. rounded = [round(abs(x), 2.0) for x in nums]

Solution

  1. Step 1: Understand the goal

    We want absolute values first, then round them to 2 decimals.
  2. Step 2: Check each option

    rounded = [round(abs(x), 2) for x in nums] correctly applies abs() then round() with integer 2. rounded = [round(x, 2) for x in nums] rounds but does not apply abs(), leaving negative values negative. rounded = [round(abs(x), '2') for x in nums] uses string '2' which is invalid. rounded = [round(abs(x), 2.0) for x in nums] uses float 2.0 which is accepted as decimal places.
  3. Final Answer:

    rounded = [round(abs(x), 2) for x in nums] -> Option A
  4. Quick Check:

    abs then round with int decimals [OK]
Hint: Apply abs() before round() with integer decimals [OK]
Common Mistakes:
  • Rounding before abs() changes results
  • Using string or float for decimal places
  • Confusing order of functions