Skip to content

? #2

Open
Open
?#2
@TIMBER2024

Description

@TIMBER2024

import logging
import pdb # Python debugger

Configure logging

logging.basicConfig(filename='app.log', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

def divide_numbers(a, b):
"""
Divide two numbers and return the result.

Args:
a (float): The numerator
b (float): The denominator

Returns:
float: The result of a / b

Raises:
ZeroDivisionError: If b is zero
"""
logging.debug(f"divide_numbers called with a={a}, b={b}")

# Potential breakpoint for interactive debugging
# pdb.set_trace()

try:
    result = a / b
    logging.info(f"Division successful. Result: {result}")
    return result
except ZeroDivisionError:
    logging.error("Attempted division by zero")
    raise
except Exception as e:
    logging.error(f"An unexpected error occurred: {e}")
    raise

def main():
logging.info("Starting the main function")

# Example usage
while True:
    try:
        num1 = float(input("Enter first number: "))
        num2 = float(input("Enter second number: "))
        result = divide_numbers(num1, num2)
        print(f"The result is: {result}")
    except ValueError:
        logging.warning("Invalid input, please enter numbers only")
        print("Please enter valid numbers.")
    except ZeroDivisionError:
        print("Cannot divide by zero!")
    except Exception as e:
        print(f"An error occurred: {e}")
    
    # Ask if the user wants to continue
    continue_operation = input("Do you want to perform another operation? (y/n): ")
    if continue_operation.lower() != 'y':
        break

logging.info("Exiting the main function")

if name == "main":
main()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions