您的位置:首页 > 编程语言 > Python开发

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

2013-04-12 12:18 525 查看
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

输出示例:

--   --        --
|    |    | |  | |
|    |    | |  | |
--   --   --   --
| |       |    |    |
| |       |    |    |
--   --        --

---   ---   ---   ---   ---
|         | |   | |   | |   |
|         | |   | |   | |   |
|         | |   | |   | |   |
---         ---   ---
|   |     | |   |     | |   |
|   |     | |   |     | |   |
|   |     | |   |     | |   |
---         ---   ---   ---
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: