题目:
关键在于思路转换:不要想着一个数字一个数字的打印,而是一行一行的打印。一个七段数码管数字一共五行,n个数字也是五行,因此五个数组就够了。
其中1,3,5行显示横,2,4行显示竖。
import sys n=str(sys.argv[1]) list_1=[] list_2=[] list_3=[] list_4=[] list_5=[] def do(i): if(i=='1'): list_1.append(' ') list_2.append(' |') list_3.append(' ') list_4.append(' |') list_5.append(' ') break if(i=='2'): list_1.append('--') list_2.append(' |') list_3.append('--') list_4.append('| ') list_5.append('--') break if(i=='3'): list_1.append('--') list_2.append(' |') list_3.append('--') list_4.append(' |') list_5.append('--') break if(i=='4'): list_1.append(' ') list_2.append('||') list_3.append('--') list_4.append(' |') list_5.append(' ') break if(i=='5'): list_1.append('--') list_2.append('| ') list_3.append('--') list_4.append(' |') list_5.append('--') break if(i=='6'): list_1.append('--') list_2.append('| ') list_3.append('--') list_4.append('||') list_5.append('--') break if(i=='7'): list_1.append('--') list_2.append(' |') list_3.append(' ') list_4.append(' |') list_5.append(' ') break if(i=='8'): list_1.append('--') list_2.append('||') list_3.append('--') list_4.append('||') list_5.append('--') break if(i=='9'): list_1.append('--') list_2.append('||') list_3.append('--') list_4.append(' |') list_5.append('--') break if(i=='0'): list_1.append('--') list_2.append('||') list_3.append(' ') list_4.append('||') list_5.append('--') def add_space(): list_1.append(' ') list_2.append(' ') list_3.append(' ') list_4.append(' ') list_5.append(' ') for i in n: do(i) add_space() print ''.join(list_1) print ''.join(list_2) print ''.join(list_3) print ''.join(list_4) print ''.join(list_5)
效果: