Bird
Raised Fist0
Pythonprogramming~5 mins

abs() and round() in Python

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
Introduction

The abs() function helps you find how far a number is from zero, ignoring if it's negative or positive. The round() function helps you make numbers simpler by cutting them to fewer decimal places.

When you want to know the size of a number without caring about its sign, like measuring distance.
When you need to clean up a number to fewer decimals for easier reading or reporting.
When comparing numbers and you want to ignore small differences caused by negative signs.
When working with money and you want to round prices to two decimal places.
When you want to avoid very long decimal numbers in your results.
Syntax
Python
abs(number)
round(number, ndigits=0)

abs() takes one number and returns its positive value.

round() takes a number and an optional number of decimal places (default is 0) to round to.

Examples
Returns 5 and 3 because abs() removes the negative sign.
Python
abs(-5)
abs(3)
Rounds 3.14159 to 3 (no decimals) and 3.14 (two decimals).
Python
round(3.14159)
round(3.14159, 2)
Rounds to 2.718 and -2.7 respectively, showing it works with negative numbers too.
Python
round(2.71828, 3)
round(-2.71828, 1)
Sample Program

This program shows how abs() removes the negative sign and how round() cuts decimals to make numbers simpler.

Python
number1 = -7.89
number2 = 4.5678

print(f"Absolute of {number1} is", abs(number1))
print(f"Rounded {number2} to 2 decimals is", round(number2, 2))
print(f"Rounded {number2} with no decimals is", round(number2))
OutputSuccess
Important Notes

abs() works with integers, floats, and even complex numbers (returns magnitude).

round() returns an integer if no decimals are given, otherwise a float.

Rounding follows the usual rules: 0.5 and above rounds up, below 0.5 rounds down.

Summary

abs() gives the positive distance of a number from zero.

round() simplifies numbers by cutting decimals to a chosen length.

Both help make numbers easier to understand and use in everyday tasks.

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