Прикреплённый файл «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 из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.