最近在学习python,也看过了几本书,偶然在群里面有人介绍checkio这个东东,就自己去玩了一下,感受还是不错的,以下记录一下自己做的几道题目,让日后自己回看过来,才会发现现在写的东西是多么垃圾,那时候也证明我已经进步了很多了。

def checkio(data):
   num = {'one':'1','two':'2','three':'3','four':'4','five':'5', \
           'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'}
   numt = {'ten':'10', 'eleven':'11', 'twelve':'12', 'thirteen':'13', 'fourteen':'14', \
            'fifteen':'15', 'sixteen':'16', 'seventeen':'17', 'eighteen':'18',\
            'nineteen':'19' }
   nums = {'twenty':'2', 'thirty':'3', 'forty':'4', 'fifty':'5',\
            'sixty':'6', 'seventy':'7', 'eighty':'8', 'ninety':'9'}
   lengnum = len(num)
   lengnumt = len(numt)
   lengnums = len(nums)
   data = str(data)
   data = list(data)
   lenght = len(data)
   if lenght == 3:
       for i in num.keys():
           if num[i] == data[0]:
               data[0] = i
       if int(data[1]) == 0:
               data[1] = ''
       if int(data[2]) == 0:
               data[2] = ''          
       if data[1]!= '' and int(data[1]) == 1:
           for i in numt.keys():
               if numt[i] == (data[1]+data[2]):
                   data[1] = i
                   data[2] = ''
       elif data[1]!= '' and int(data[1]) > 1:
           for i in nums.keys():
               if nums[i] == data[1]:
                   data[1] = i
       if data[2]!= '' and int(data[2]) >= 1:
               for i in num.keys():
                   if num[i] == data[2]:
                       data[2] = i
       if data[1] == '':
           if data[2] == '':
               return data[0] + ' hundred'
           else:
               return  data[0] + ' hundred ' + data[2]
       else:
           if data[2] == '':
               return data[0] + ' hundred ' + data[1]
           else:
               return  data[0] + ' hundred ' + data[1] + ' ' + data[2]
   if lenght == 2:
       if int(data[0]) == 1:
           for i in numt.keys():
               if numt[i] == (data[0]+data[1]):
                   data[0] = i
                   data[1] = ''
       elif int(data[0]) > 1:
           for i in nums.keys():
               if nums[i] == data[0]:
                   data[0] = i
           if int(data[1]) >= 1:
               for i in num.keys():
                   if num[i] == data[1]:
                       data[1] =i                    
           else:
                data[1] = ''
       if data[1] == '':
           return data[0]
       else:
           return data[0] + ' ' + data[1]            
   if lenght == 1:
       if int(data[0]) == 0:
           return 'zero'
       else:
           for i in num.keys():
               if num[i] == data[0]:
                   data[0] = i
           return data[0]
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
   assert checkio(4) == 'four', "1st example"
   assert checkio(133) == 'one hundred thirty three', "2nd example"
   assert checkio(12) == 'twelve', "3rd example"
   assert checkio(101) == 'one hundred one', "4th example"
   assert checkio(212) == 'two hundred twelve', "5th example"
   assert checkio(40) == 'forty', "6th example"