Skip to content

Commit b8d0760

Browse files
Add word_to_number function for converting words to numbers
1 parent 713204c commit b8d0760

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

word2number.py

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
def word_to_number(word):
2+
numbers_dict = {
3+
"zero": 0,
4+
"one": 1,
5+
"two": 2,
6+
"three": 3,
7+
"four": 4,
8+
"five": 5,
9+
"six": 6,
10+
"seven": 7,
11+
"eight": 8,
12+
"nine": 9,
13+
"ten": 10,
14+
"eleven": 11,
15+
"twelve": 12,
16+
"thirteen": 13,
17+
"fourteen": 14,
18+
"fifteen": 15,
19+
"sixteen": 16,
20+
"seventeen": 17,
21+
"eighteen": 18,
22+
"nineteen": 19,
23+
"twenty": 20,
24+
"thirty": 30,
25+
"forty": 40,
26+
"fifty": 50,
27+
"sixty": 60,
28+
"seventy": 70,
29+
"eighty": 80,
30+
"ninety": 90,
31+
"hundred": 100,
32+
"thousand": 1000,
33+
"lakh": 100000,
34+
"crore": 10000000,
35+
"billion": 1000000000,
36+
"trillion": 1000000000000,
37+
}
38+
39+
# Split the string into words
40+
words = word.split()
41+
42+
result = 0
43+
current_number = 0
44+
45+
# Ways I can make this more efficient:
46+
for w in words:
47+
if w in numbers_dict:
48+
current_number += numbers_dict[w]
49+
elif w == "hundred":
50+
current_number *= 100
51+
elif w == "thousand":
52+
result += current_number * 1000
53+
current_number = 0
54+
elif w == "lakh":
55+
result += current_number * 100000
56+
current_number = 0
57+
elif w == "crore":
58+
result += current_number * 10000000
59+
current_number = 0
60+
elif w == "billion":
61+
result += current_number * 1000000000
62+
current_number = 0
63+
elif w == "trillion":
64+
result += current_number * 1000000000000
65+
current_number = 0
66+
67+
result += current_number
68+
69+
return result
70+
71+
72+
# Example usage:
73+
number_str = "two trillion seven billion fifty crore thirty-four lakh seven thousand nine hundred"
74+
result = word_to_number(number_str)
75+
print(result)

0 commit comments

Comments
 (0)