-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspell_number.py
73 lines (69 loc) · 1.72 KB
/
spell_number.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
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
values_is = [
(9000, "níu þúsund"),
(8000, "átta þúsund"),
(7000, "sjö þúsund"),
(6000, "sex þúsund"),
(5000, "fimm þúsund"),
(4000, "fjögur þúsund"),
(3000, "þrjú þúsund"),
(2000, "tvö þúsund"),
(1000, "eitt þúsund"),
(900, "níu hundruð"),
(800, "átta hundruð"),
(700, "sjö hundruð"),
(600, "sex hundruð"),
(500, "fimm hundruð"),
(400, "fjögur hundruð"),
(300, "þrjú hundruð"),
(200, "tvö hundruð"),
(100, "hundrað"),
(90, "níutíu"),
(80, "áttatíu"),
(70, "sjötíu"),
(60, "sextíu"),
(50, "fimmtíu"),
(40, "fjörtíu"),
(30, "þrjátíu"),
(20, "tuttugu"),
(19, "nítján"),
(18, "átján"),
(17, "sautján"),
(16, "sextán"),
(15, "fimmtán"),
(14, "fjórtán"),
(13, "þrettán"),
(12, "tólf"),
(11, "ellefu"),
(10, "tíu"),
(9, "níu"),
(8, "átta"),
(7, "sjö"),
(6, "sex"),
(5, "fimm"),
(4, ["fjórir", "fjórar", "fjögur"]),
(3, ["þrír", "þrjár", "þrjú"]),
(2, ["tveir", "tvær", "tvö"]),
(1, ["einn", "ein", "eitt"]),
]
GENDER_TO_INDEX = {
"kk": 0,
"kvk": 1,
"hk": 2,
}
def get_is_number(n, gender="kk", can_zero=True):
if can_zero and n == 0:
return "núll"
for v, r in values_is:
if n >= v:
next = get_is_number(n - v, gender=gender, can_zero=False)
if type(r) == list:
R = r[GENDER_TO_INDEX[gender]]
else:
R = r
if not next:
return R
if "og" in next:
return R + " " + next
else:
return R + " og " + next
return ""