python 实际问题(一) 实现LED字母打印

  1 ## Created  by YangJinfeng 
  2 
  3 def num_set(s):
  4     """set the LED shapes to nums"""
  5 
  6     a = [' ' + ' '*s + ' ', ' ' + '-'*s + ' ']
  7     b = ['|'+' '*s+' ',  ' '+' '*s +'|', '|'+' '*s+'|']
  8 
  9     zero = [a[1],b[2],a[0],b[2],a[1]]
 10     one  = [a[0],b[1],a[0],b[1],a[0]]
 11     two  = [a[1],b[1],a[1],b[0],a[1]]
 12     thre = [a[1],b[1],a[1],b[1],a[1]]
 13     four = [a[0],b[2],a[1],b[1],a[0]]
 14     five = [a[1],b[0],a[1],b[1],a[1]]
 15     six  = [a[1],b[0],a[1],b[2],a[1]]
 16     seve = [a[1],b[1],a[0],b[1],a[0]]
 17     eigh = [a[1],b[2],a[1],b[2],a[1]]
 18     nine = [a[1],b[2],a[1],b[1],a[1]]
 19 
 20     return  [zero, one, two, thre, four, five, six, seve, eigh, nine]
 21 
 22 def num_get(s):
 23     """get the LED nums list"""
 24     return num_set(s)
 25 
 26 def num_print(S,N):
 27     """print the nums"""
 28     nums = num_get(S)
 29     try:
 30         for i in range(5):
 31             line = ''
 32             for j in range(len(N)):
 33                 n = nums[int(N[j])]
 34                 line += n[i] + ' '
 35             if i % 2 == 1:
 36                 for t in range(S): 
 37                     print line
 38             else:
 39                 print line
 40     except ValueError, e:
 41         print e
 42 
 43 def file_handle(f):
 44     """handle the file, return the data_list"""
 45     data_list = []
 46     try:
 47         for line in file(f, 'r'):
 48             data_list.append(line.split())
 49     finally:
 50         file(f, 'r').close()
 51 
 52     return data_list
 53 
 54 if __name__ == "__main__":
 55 
 56     ## content of ./tmp:
 57     ## 
 58     ## 2 12345
 59     ## 3 67890 
 60     for i in file_handle("./tmp"):
 61         if not i:
 62             continue
 63         num_print(int(i[0]), i[1]
 64 
原问题:

把给定任意数字变成LCD的7段显示 输入: 输入文件包含多行,每个要显示的数占一行。每一行包含两个整数S和N。其中N是要显示的数(比如1234,
48384, 100000234)。S是显示的LCD图案的尺寸(S<10) 输出: 以LCD的样式print出输入文件指定的数。横线用'-'(减号)组成, 竖线用'|'(管道号)组成。 每一个数字刚好占据 S+2列, 2*S+3行。 数字之间用空列分割。 数之间用空行分割。 输入示例: 2 12345 3 67890 输出示例: -- -- -- | | | | | | | | | | | | -- -- -- -- | | | | | | | | | | -- -- -- --- --- --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- ---
原文地址:https://www.cnblogs.com/thinbottle/p/3016391.html