zoukankan      html  css  js  c++  java
  • 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 输出示例: -- -- -- | | | | | | | | | | | | -- -- -- -- | | | | | | | | | | -- -- -- --- --- --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- ---
  • 相关阅读:
    列表第一篇文档与其他文档不同样式
    当前栏目判断有无子栏目
    当前栏目文章数
    有关当前焦点的标签,只有我能理解
    给推荐一个标识
    附件下载次数
    收藏代码
    关联会员头像信息
    当前三级折叠菜单导航
    centos7 安装配置apache
  • 原文地址:https://www.cnblogs.com/thinbottle/p/3016391.html
Copyright © 2011-2022 走看看