Commit 260bb19db24586d6bc17e3d69dcac6ba5cf6a1fc
1 parent
ff91b8b1
Exists in
master
and in
1 other branch
Converte individualmente numeral para sua representacao textual
Showing
2 changed files
with
19 additions
and
53 deletions
Show diff stats
tradutor/src/py/Output.py
tradutor/src/py/StringAux.py
... | ... | @@ -3,58 +3,26 @@ |
3 | 3 | |
4 | 4 | from unicodedata import normalize |
5 | 5 | |
6 | -ext = [{1:"um", 2:"dois", 3:"três", 4:"quatro", 5:"cinco", 6:"seis", | |
7 | -7:"sete", 8:"oito", 9:"nove", 10:"dez", 11:"onze", 12:"doze", | |
8 | -13:"treze", 14:"quatorze", 15:"quinze", 16:"dezesseis", | |
9 | -17:"dezessete", 18:"dezoito", 19:"dezenove"}, {2:"vinte", 3:"trinta", | |
10 | -4:"quarenta", 5:"cinquenta", 6:"sessenta", 7:"setenta", 8:"oitenta", | |
11 | -9:"noventa"}, {1:"cento", 2:"duzentos", 3:"trezentos", | |
12 | -4:"quatrocentos", 5:"quinhentos", 6:"seissentos", 7:"setessentos", | |
13 | -8:"oitocentos", 9:"novecentos"}] | |
6 | +ext = {1:"um", 2:"dois", 3:"três", 4:"quatro", 5:"cinco", 6:"seis", 7:"sete", 8:"oito", 9:"nove", 0:"zero"} | |
14 | 7 | |
15 | -und = ['', ' mil', (' milhão', ' milhões'), (' bilhão', ' bilhões'), | |
16 | -(' trilhão', ' trilhões')] | |
17 | - | |
18 | -numeral_map = zip( | |
19 | - (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1), | |
20 | - ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I') | |
21 | -) | |
22 | - | |
23 | -def cent(s, grand): | |
24 | - s = '0' * (3 - len(s)) + s | |
25 | - if s == '000': | |
26 | - return '' | |
27 | - if s == '100': | |
28 | - return 'cem' | |
29 | - ret = '' | |
30 | - dez = s[1] + s[2] | |
31 | - if s[0] != '0': | |
32 | - ret += ext[2][int(s[0])] | |
33 | - if dez != '00': | |
34 | - ret += ' e ' | |
35 | - else: | |
36 | - return ret + (type(und[grand]) == type(()) and (int(s) > 1 and und[grand][1] or und[grand][0]) or und[grand]) | |
37 | - if int(dez) < 20: | |
38 | - ret += ext[0][int(dez)] | |
39 | - else: | |
40 | - if s[1] != '0': | |
41 | - ret += ext[1][int(s[1])] | |
42 | - if s[2] != '0': | |
43 | - ret += ' e ' + ext[0][int(s[2])] | |
44 | - | |
45 | - return ret + (type(und[grand]) == type(()) and (int(s) > 1 and und[grand][1] or und[grand][0]) or und[grand]) | |
8 | +def extenso(n): | |
9 | + strn = str(n) | |
10 | + sizen = len(strn) | |
11 | + tokens = [] | |
12 | + for i in range (0, sizen): | |
13 | + x = int(strn[i]) | |
14 | + tokens.append(ext[x]) | |
15 | + return ' '.join(tokens) | |
46 | 16 | |
17 | +""" | |
47 | 18 | def extenso(n): |
48 | - sn = str(int(n)) | |
49 | - ret = [] | |
50 | - grand = 0 | |
51 | - while sn: | |
52 | - s = sn[-3:] | |
53 | - sn = sn[:-3] | |
54 | - ret.append(cent(s, grand)) | |
55 | - grand += 1 | |
56 | - ret.reverse() | |
57 | - return ' e '.join([r for r in ret if r]) | |
19 | + strn = str(n) | |
20 | + sizen = len(strn) | |
21 | + tokens = [] | |
22 | + for i in range (0, sizen): | |
23 | + tokens.append(strn[i]) | |
24 | + return ' '.join(tokens) | |
25 | +""" | |
58 | 26 | |
59 | 27 | def remover_acentos(txt): |
60 | 28 | |
... | ... | @@ -97,8 +65,7 @@ def roman_to_int(input): |
97 | 65 | raise ValueError, 'input is not a valid Roman numeral: %s' % input |
98 | 66 | |
99 | 67 | if int_to_roman(sum) == input: return sum |
100 | - else: | |
101 | - raise ValueError, 'input is not a valid Roman numeral: %s' % input | |
68 | + else: raise ValueError, 'input is not a valid Roman numeral: %s' % input | |
102 | 69 | |
103 | 70 | def int_to_roman(input): |
104 | 71 | if not isinstance(input, type(1)): | ... | ... |