From d95ffc9ff9826c82ac801eb52384edc89c4eaf09 Mon Sep 17 00:00:00 2001 From: bangarumahesh22 Date: Fri, 7 Nov 2025 22:03:07 +0530 Subject: [PATCH 1/3] Add input validation for division by zero in divide_numbers() This module provides a function for dividing two numbers with input validation to prevent division by zero errors, enhancing user experience with clear error messages. --- maths/division.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 maths/division.py diff --git a/maths/division.py b/maths/division.py new file mode 100644 index 000000000000..dc87d022a8d5 --- /dev/null +++ b/maths/division.py @@ -0,0 +1,41 @@ +""" +This module provides a function for dividing two numbers with proper input validation. + +The divide_numbers function includes validation to prevent division by zero errors, +providing clear error messages for better user experience. +""" + + +def divide_numbers(a: float, b: float) -> float: + """ + Divide two numbers with input validation for zero denominator. + + Args: + a: The numerator (dividend) + b: The denominator (divisor) + + Returns: + float: The result of a divided by b + + Raises: + ValueError: If b is zero + + Examples: + >>> divide_numbers(10, 2) + 5.0 + >>> divide_numbers(15, 3) + 5.0 + >>> divide_numbers(10, 0) + Traceback (most recent call last): + ... + ValueError: Cannot divide by zero. Please provide a non-zero denominator. + """ + if b == 0: + raise ValueError("Cannot divide by zero. Please provide a non-zero denominator.") + return a / b + + +if __name__ == "__main__": + import doctest + + doctest.testmod() From 4607b86174927979000b9446ccb8b5aa7f81cc46 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 16:37:28 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/division.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/maths/division.py b/maths/division.py index dc87d022a8d5..bd952c469ee8 100644 --- a/maths/division.py +++ b/maths/division.py @@ -9,17 +9,17 @@ def divide_numbers(a: float, b: float) -> float: """ Divide two numbers with input validation for zero denominator. - + Args: a: The numerator (dividend) b: The denominator (divisor) - + Returns: float: The result of a divided by b - + Raises: ValueError: If b is zero - + Examples: >>> divide_numbers(10, 2) 5.0 @@ -31,11 +31,13 @@ def divide_numbers(a: float, b: float) -> float: ValueError: Cannot divide by zero. Please provide a non-zero denominator. """ if b == 0: - raise ValueError("Cannot divide by zero. Please provide a non-zero denominator.") + raise ValueError( + "Cannot divide by zero. Please provide a non-zero denominator." + ) return a / b if __name__ == "__main__": import doctest - + doctest.testmod() From 9bd756060b16d6db854df717016e55efd367dd15 Mon Sep 17 00:00:00 2001 From: bangarumahesh22 Date: Fri, 7 Nov 2025 22:59:13 +0530 Subject: [PATCH 3/3] Replace non-descriptive parameter names with descriptive ones Changed parameter names from 'a' and 'b' to 'numerator' and 'denominator' throughout the function to satisfy the 'require descriptive names' requirement from algorithms-keeper bot. Updated function signature, docstring, and all usages within the function body. --- maths/division.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/maths/division.py b/maths/division.py index bd952c469ee8..32013eff655b 100644 --- a/maths/division.py +++ b/maths/division.py @@ -6,19 +6,19 @@ """ -def divide_numbers(a: float, b: float) -> float: +def divide_numbers(numerator: float, denominator: float) -> float: """ Divide two numbers with input validation for zero denominator. Args: - a: The numerator (dividend) - b: The denominator (divisor) + numerator: The numerator (dividend) + denominator: The denominator (divisor) Returns: - float: The result of a divided by b + float: The result of numerator divided by denominator Raises: - ValueError: If b is zero + ValueError: If denominator is zero Examples: >>> divide_numbers(10, 2) @@ -30,11 +30,11 @@ def divide_numbers(a: float, b: float) -> float: ... ValueError: Cannot divide by zero. Please provide a non-zero denominator. """ - if b == 0: + if denominator == 0: raise ValueError( "Cannot divide by zero. Please provide a non-zero denominator." ) - return a / b + return numerator / denominator if __name__ == "__main__":