Прикреплённый файл «word_number.2.py»
Загрузка 1 # coding: utf8
2
3 import sys
4
5 def main():
6
7
8 words = {
9
10 # 1
11 1: 'один', 2: 'два', 3: 'три', 4: 'четыре', 5: 'пять',
12 6: 'шесть', 7: 'семь', 8: 'восемь', 9: 'девять',
13
14 # 2
15 10: 'десять', 11: 'одиннадцать', 12: 'двенадцать', 13: 'тринадцать', 14: 'четырнадцать',
16 15: 'пятнадцать', 16: 'шестнадцать', 17: 'семнадцать', 18: 'восемнадцать',
17 19: 'девятнадцать',
18
19 # 3
20 20: 'двадцать', 30: 'тридцать', 40: 'сорок', 50: 'пятьдесят',
21 60: 'шестьдесят', 70: 'семьдесят', 80: 'восемьдесят', 90: 'девяносто',
22
23 # 4
24 100: 'сто', 200: 'двести', 300: 'триста', 400: 'четыреста', 500: 'пятьсот',
25 600: 'шестьсот', 700: 'семьсот', 800: 'восемьсот', 900: 'девятьсот' }
26
27 def kind(n):
28 if n >= 100: return 4
29 elif n >= 20: return 3
30 elif n >= 10: return 2
31 else: return 1
32
33 numbers = dict( [(v,(k, kind(k))) for k,v in words.items()] )
34
35 s = sys.argv[1]
36
37 v = 0
38 cur_kind = 5
39 for w in s.split():
40 if w:
41 if numbers.has_key(w):
42 value, kind = numbers[w]
43 if kind < cur_kind: # сто пятьсот is too much for us
44 v += value
45 cur_kind = kind
46 if cur_kind == 3:
47 cur_kind = 2 # no more teens :`(
48 elif cur_kind == 2:
49 cur_kind = 0 # no more numbers
50 else:
51 print 'misplaced token:', w
52 return
53 else:
54 print 'unknown token:', w
55 return
56
57 print v
58
59 if __name__ == '__main__':
60 main()
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2011-09-26 11:35:22, 0.6 KB) [[attachment:statid.py]]
- [получить | показать] (2011-09-26 11:35:22, 0.6 KB) [[attachment:vyr0.py]]
- [получить | показать] (2011-09-26 11:35:22, 1.0 KB) [[attachment:vyr1.py]]
- [получить | показать] (2011-09-26 11:35:22, 1.1 KB) [[attachment:word_number.1.py]]
- [получить | показать] (2011-09-26 11:35:22, 1.7 KB) [[attachment:word_number.2.py]]
Вам нельзя прикреплять файлы к этой странице.