-
Notifications
You must be signed in to change notification settings - Fork 0
/
num2zh
executable file
·77 lines (64 loc) · 1.51 KB
/
num2zh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/env python3
# Convert number to Tranditional Chinese
import sys
chars = {
1: '壹',
2: '贰',
3: '叁',
4: '肆',
5: '伍',
6: '陆',
7: '柒',
8: '捌',
9: '玖',
0: '零',
10: '拾',
100: '佰',
1000: '仟',
10000: '万'
}
def display(num,word):
print(num," -> ",word)
def test_script():
print("convert number into Chinese characters")
display(1234,num2zh(1234))
display(12340,num2zh(12340))
display(123400,num2zh(123400))
display(1234000,num2zh(1234000))
display(1230004,num2zh(1230004))
def num2zh(num):
word = []
num_10000 = int(num/10000)
if num_10000 > 0:
word.append(num2zh(num_10000))
word.append(chars.get(10000))
num = num%10000
num_1000 = int(num/1000)
if num_1000 > 0:
word.append(num2zh(num_1000))
word.append(chars.get(1000))
num = num%1000
num_100 = int(num/100)
if num_100 > 0:
word.append(num2zh(num_100))
word.append(chars.get(100))
num = num%100
if num == 0:
return ''.join(word)
num_10 = int(num/10)
if num_10 > 0:
word.append(num2zh(num_10))
word.append(chars.get(10))
elif num_100 > 0:
word.append(chars.get(0))
num = num%10
word.append(chars.get(num))
return ''.join(word)
def main(nums):
for num in nums:
display(num,num2zh(int(num)))
if __name__ == "__main__":
if len(sys.argv[1:]) > 0:
main(sys.argv[1:])
else:
test_script()