-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogical_test.py
47 lines (32 loc) · 2 KB
/
logical_test.py
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
"""
Convert Number to Thai Text.
เขียนโปรแกรมรับค่าจาก user เพื่อแปลง input ของ user ที่เป็นตัวเลข เป็นตัวหนังสือภาษาไทย
โดยที่ค่าที่รับต้องมีค่ามากกว่าหรือเท่ากับ 0 และน้อยกว่า 10 ล้าน
*** อนุญาตให้ใช้แค่ตัวแปรพื้นฐาน, built-in methods ของตัวแปรและ function พื้นฐานของ Python เท่านั้น
ห้ามใช้ Library อื่น ๆ ที่ต้อง import ในการทำงาน(ยกเว้น ใช้เพื่อการ test การทำงานของฟังก์ชัน).
"""
thai_number = ("ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า")
unit = ("", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน")
def unit_process(val):
length = len(val) > 1
result = ''
for index, current in enumerate(map(int, val)):
if current:
if index:
result = unit[index] + result
if length and current == 1 and index == 0:
result += 'เอ็ด'
elif index == 1 and current == 2:
result = 'ยี่' + result
elif index != 1 or current != 1:
result = thai_number[current] + result
return result
def thai_numtext(number):
s_number = str(number)[::-1]
n_list = [s_number[i:i + 6].rstrip("0") for i in range(0, len(s_number), 6)]
result = unit_process(n_list.pop(0))
for i in n_list:
result = unit_process(i) + 'ล้าน' + result
return result
number = int(input("Enter arabic number:"))
print("thai_text of ", number, "is: ", thai_numtext(number))