From 02af73d5902a66c53eff3e9abd5b50288f761a3f Mon Sep 17 00:00:00 2001 From: Nitkarsh Chourasia Date: Thu, 17 Aug 2023 15:38:36 +0530 Subject: [PATCH] Improving the program, making it more modular, real world, pragmatic, renamed it to snake_case, etc... --- sum_of_digits_of_a_number.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 sum_of_digits_of_a_number.py diff --git a/sum_of_digits_of_a_number.py b/sum_of_digits_of_a_number.py new file mode 100644 index 00000000000..06bb321441f --- /dev/null +++ b/sum_of_digits_of_a_number.py @@ -0,0 +1,28 @@ +import sys + +def get_integer_input(prompt, attempts): + for i in range(attempts, 0, -1): + try: + n = int(input(prompt)) + return n + except ValueError: + print("Enter an integer only") + print(f"{i-1} {'chance' if i-1 == 1 else 'chances'} left") + return None + +def sum_of_digits(n): + total = 0 + while n > 0: + total += n % 10 + n //= 10 + return total + +chances = 3 +number = get_integer_input("Enter a number: ", chances) + +if number is None: + print("You've used all your chances.") + sys.exit() + +result = sum_of_digits(number) +print(f"The sum of the digits of {number} is: {result}")