From 1406119a4e99f8c95ffad61890c99e77f9650f56 Mon Sep 17 00:00:00 2001 From: Seoyeon Lee Date: Sun, 8 Dec 2024 00:45:25 -0500 Subject: [PATCH] Adding computer (python) language seemed to slow down my thinking, but actually helped me with organizing each step in order. I kept getting 'fail' message, and fixed minor errors multiple times. For example, adding blank space between two words can be done by using + " " was forgotten a few times. --- numberwords.py | 33 ++++++++++++++++++++++++++++----- test_numberwords.py | 2 +- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/numberwords.py b/numberwords.py index 8c590cd..098ff70 100644 --- a/numberwords.py +++ b/numberwords.py @@ -15,19 +15,42 @@ TENS_NAMES = [ ] def int_under_1000000_to_str(number): - return "umm..." + if number<1000: + return int_under_1000_to_str(number) + quotient,remainder=divide_with_remainder(number,1000) + Q1=int_under_1000_to_str(quotient) + " " + "thousand" + if remainder>0: + R1=int_under_1000_to_str(remainder) + return Q1 + " " + R1 + return Q1 def int_under_1000_to_str(number): - return "umm..." + if number<100: + return int_under_100_to_str(number) + quotient,remainder=divide_with_remainder(number,100) + Q1=int_under_10_to_str(quotient) + " " + "hundred" + if remainder>0: + R1=int_under_100_to_str(remainder) + return Q1 + " and " + R1 + return Q1 def int_under_100_to_str(number): - return "umm..." + if number<20: + return int_under_20_to_str(number) + quotient,remainder=divide_with_remainder(number,10) + tensname=TENS_NAMES[quotient] + if remainder>0: + onesname=int_under_10_to_str(remainder) + return tensname + "-" + onesname + return tensname def int_under_20_to_str(number): - return "umm..." + if number<10: + return int_under_10_to_str(number) + return TWEEN_AND_TEEN_NAMES[number-10] def int_under_10_to_str(number): - return "umm..." + return DIGIT_NAMES[number] def divide_with_remainder(dividend, divisor): """Divides one number by another, using whole-number division. diff --git a/test_numberwords.py b/test_numberwords.py index 0fa6d68..74fd840 100644 --- a/test_numberwords.py +++ b/test_numberwords.py @@ -33,7 +33,7 @@ class TestIntToStr(unittest.TestCase): [int_under_1000000_to_str, 1001, 'one thousand one'], [int_under_1000000_to_str, 1672, 'one thousand six hundred and seventy-two'], [int_under_1000000_to_str, 10000, 'ten thousand'], - [int_under_1000000_to_str, 588567, 'five hundred and ninety-eight thousand five hundred and sixty-seven'], + [int_under_1000000_to_str, 598567, 'five hundred and ninety-eight thousand five hundred and sixty-seven'], ] def test_converts_integer_to_string(self):