Skip to content

Commit 0452f21

Browse files
Add files via upload
1 parent 9c0832b commit 0452f21

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

Integer to English Word.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
Created on Fri Sep 11 20:04:48 2020
4+
5+
@author: Saptarshi
6+
"""
7+
8+
num = int(input())
9+
10+
TENS = {30: 'Thirty', 40: 'Forty', 50: 'Fifty', 60: 'Sixty', 70: 'Seventy', 80: 'Eighty', 90: 'Ninety'}
11+
12+
ZERO_TO_TWENTY = (
13+
'Zero', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten',
14+
'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen',
15+
'Nineteen', 'Twenty'
16+
)
17+
18+
def number_to_english(n):
19+
if any(not x.isdigit() for x in str(n)):
20+
return ''
21+
22+
if n <= 20:
23+
return ZERO_TO_TWENTY[n]
24+
elif n < 100 and n % 10 == 0:
25+
return TENS[n]
26+
elif n < 100:
27+
return number_to_english(n - (n % 10)) + ' ' + number_to_english(n % 10)
28+
elif n < 1000 and n % 100 == 0:
29+
return number_to_english(int(n/100)) + ' Hundred'
30+
elif n < 1000:
31+
return number_to_english(int(n/100)) + ' Hundred ' + number_to_english(n % 100)
32+
elif n<1000000 and n>=1000 and n%1000==0:
33+
return number_to_english(int(n/1000)) + ' Thousand'
34+
elif n < 1000000:
35+
return number_to_english(int(n/1000)) + ' Thousand ' + number_to_english(n % 1000)
36+
elif n<1000000000 and n>=1000000 and n%1000000==0:
37+
return number_to_english(int(n/1000000)) + ' Million'
38+
elif n<1000000000 and n>=1000000:
39+
return number_to_english(int(n/1000000)) + ' Million ' + number_to_english(n%1000000)
40+
elif n<2**31-1 and n>=1000000000 and n%1000000000==0:
41+
return number_to_english(int(n/1000000000)) + ' Billion'
42+
elif n<=2**31-1 and n>=1000000000:
43+
return number_to_english(int(n/1000000000)) + ' Billion ' + number_to_english(n%1000000000)
44+
45+
return ''
46+
47+
48+
49+
print(number_to_english(num))
50+

0 commit comments

Comments
 (0)