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
@@ -19,7 +19,6 @@ class Output(object): | @@ -19,7 +19,6 @@ class Output(object): | ||
19 | self.it.load(ts) | 19 | self.it.load(ts) |
20 | while(self.it.hasNext()): | 20 | while(self.it.hasNext()): |
21 | self.__glosa.append(self.it.getAtualW()) | 21 | self.__glosa.append(self.it.getAtualW()) |
22 | - self.__glosa.append(" ") | ||
23 | self.it.reset() | 22 | self.it.reset() |
24 | - return ''.join(self.__glosa) | 23 | + return ' '.join(self.__glosa) |
25 | 24 |
tradutor/src/py/StringAux.py
@@ -3,58 +3,26 @@ | @@ -3,58 +3,26 @@ | ||
3 | 3 | ||
4 | from unicodedata import normalize | 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 | def extenso(n): | 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 | def remover_acentos(txt): | 27 | def remover_acentos(txt): |
60 | 28 | ||
@@ -97,8 +65,7 @@ def roman_to_int(input): | @@ -97,8 +65,7 @@ def roman_to_int(input): | ||
97 | raise ValueError, 'input is not a valid Roman numeral: %s' % input | 65 | raise ValueError, 'input is not a valid Roman numeral: %s' % input |
98 | 66 | ||
99 | if int_to_roman(sum) == input: return sum | 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 | def int_to_roman(input): | 70 | def int_to_roman(input): |
104 | if not isinstance(input, type(1)): | 71 | if not isinstance(input, type(1)): |