鱼C论坛

 找回密码
 立即注册
楼主: jerryxjr1220

[技术交流] python小练习(001):把数字转换成LCD显示模式

[复制链接]
发表于 2016-12-21 23:23:11 | 显示全部楼层
不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-23 13:42:03 | 显示全部楼层
本帖最后由 dodobar 于 2016-12-23 13:43 编辑

dict1={0:[' _  ','| | ','|_| '],\
1:['    ','  | ','  | '],\
2:[' _  ',' _| ','|_  '],\
3:[' _  ',' _| ',' _| '],\
4:['    ','|_| ','  | '],\
5:[' _  ','|_  ',' _| '],\
6:[' _  ','|_  ','|_| '],\
7:[' _  ','  | ','  | '],\
8:[' _  ','|_| ','|_| '],\
9:[' _  ','|_| ',' _| ']}
number = input('请输入一串数字:')
for i in range(3):
    for n in list(number):
        print(dict1[int(n)],end = '   ')
    print()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-25 23:35:35 | 显示全部楼层
本帖最后由 sd小舅子 于 2016-12-25 23:38 编辑
  1. lcd = {0:[' _ ','| |','|_|'],
  2.        1:['   ','  |','  |'],
  3.        2:[' _ ',' _|','|_ '],
  4.        3:[' _ ',' _|',' _|'],
  5.        4:['   ','|_|','  |'],
  6.        5:[' _ ','|_ ',' _|'],
  7.        6:[' _ ','|_ ','|_|'],
  8.        7:[' _ ','  |','  |'],
  9.        8:[' _ ','|_|','|_|'],
  10.        9:[' _ ','|_|',' _|']}
  11. num = input('请输入数字:')
  12. while True:
  13.     if num.isdigit():
  14.         break
  15.     else:
  16.         num = input('输入有误,请重新输入:')
  17. for i in range(3):
  18.     for each in num:
  19.         print(lcd[int(each)][i],end = '')
  20.     print()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-26 11:19:24 | 显示全部楼层
厉害啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-12 09:35:02 | 显示全部楼层
新手还得认真学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-12 10:26:01 | 显示全部楼层
这样字典会不会看起来比较烦?
是不是可以直接用文件把数字的LED存储下来,需要的时候直接读
代码看起来简洁一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-12 10:29:33 | 显示全部楼层
蛋炒饭妖妖 发表于 2017-1-12 10:26
这样字典会不会看起来比较烦?
是不是可以直接用文件把数字的LED存储下来,需要的时候直接读
代码看起来 ...

当然可以,程序怎么写都可以
可以实现最后的结果,代码看起来简洁,就是目标
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-12 10:31:13 | 显示全部楼层
jerryxjr1220 发表于 2017-1-12 10:29
当然可以,程序怎么写都可以
可以实现最后的结果,代码看起来简洁,就是目标

同意~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-12 11:03:03 | 显示全部楼层
本帖最后由 jerryxjr1220 于 2017-1-12 11:10 编辑


不过其实用个列表也很简洁的
  1. pdic = [' _  | | |_| ','      |   | ',' _   _| |_  ',' _   _|  _| ','    |_|   | ',
  2.                 ' _  |_   _| ',' _  |_  |_| ',' _    |   | ',' _  |_| |_| ',' _  |_|  _| ']
  3. temp = input('Input the number:')
  4. s = ['','','']
  5. for i in temp:
  6.         for j in range(3):
  7.                 s[j] += pdic[int(i)][j*4:j*4+4]
  8. print ('\n'.join(s))
复制代码

无标题2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-12 23:26:29 | 显示全部楼层
来交作业了,感谢老师分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-18 10:47:39 | 显示全部楼层
厉害了   经典的 题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-18 10:48:26 | 显示全部楼层
看到过。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-8 15:54:37 | 显示全部楼层
  1. while True:
  2.     a = input(r'input the numbers:')
  3.     numdict = {
  4.                0:[' _ ','| |','|_|'],
  5.                1:['   ',' | ',' | '],
  6.                2:[' _ ',' _|','|_ '],
  7.                3:[' _ ',' _|',' _|'],
  8.                4:['   ','|_|','  |'],
  9.                5:[' _ ','|_ ',' _|'],
  10.                6:[' _ ','|_ ','|_|'],
  11.                7:[' _ ','  |','  |'],
  12.                8:[' _ ','|_|','|_|'],
  13.                9:[' _ ','|_|',' _|']
  14.                }

  15.     show = ['','','']


  16.     for each in a:
  17.         each = int(each)
  18.         for i in range(3):
  19.             show[i] += numdict[each][i]

  20.     for each in show:
  21.         print(each)



  22. """
  23. _      _  _       _   _  _   _   _
  24. | |  |  _| _| |_| |_  |_   | |_| |_|
  25. |_|  | |_  _|   |  _| |_|  | |_|  _|
  26.    
  27. """
复制代码


我是新人... ,开始做楼主的每日一练啦,向楼主学习

这个题昨天看到的...一上来根本不会做看了楼主的答案 然后今天独立打出来的

感觉学到了!感谢楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-9 13:08:12 | 显示全部楼层
0123就不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-9 13:26:03 | 显示全部楼层
看了这里面的其他代码,觉得简洁又比我这个效率高,多做做练习能学到很多啊

  1. def shu():
  2.     while True:
  3.         shuru=input('请输入需要转变的数字,输入0000结束:')
  4.         if shuru.isdigit():
  5.             return shuru
  6.         else:
  7.             print('输入有误,请重新输入!!!')
  8.             shu()
  9. def xianshi(shuru):
  10.     s=[]
  11.     z=[]
  12.     x=[]
  13.     l=len(shuru)
  14.     for i in range(l):
  15.         if shuru[i]=='0':
  16.             s+=[' ','_',' ',' ']
  17.             z+=['|',' ','|',' ']
  18.             x+=['|','_','|',' ']
  19.         elif shuru[i]=='1':
  20.             s+=[' ',' ',' ',' ']
  21.             z+=[' ','|',' ',' ']
  22.             x+=[' ','|',' ',' ']            
  23.         elif shuru[i]=='2':
  24.             s+=[' ','_','_',' ']
  25.             z+=[' ','_','|',' ']
  26.             x+=['|','_',' ',' ']            
  27.         elif shuru[i]=='3':
  28.             s+=[' ','_',' ',' ']
  29.             z+=[' ','_','|',' ']
  30.             x+=[' ','_','|',' ']
  31.         elif shuru[i]=='4':
  32.             s+=[' ',' ',' ',' ']
  33.             z+=['|','_','|',' ']
  34.             x+=[' ',' ','|',' ']
  35.         elif shuru[i]=='5':
  36.             s+=[' ','_',' ',' ']
  37.             z+=['|','_',' ',' ']
  38.             x+=[' ','_','|',' ']
  39.         elif shuru[i]=='6':
  40.             s+=[' ','_',' ',' ']
  41.             z+=['|','_',' ',' ']
  42.             x+=['|','_','|',' ']
  43.         elif shuru[i]=='7':
  44.             s+=[' ','_',' ',' ']
  45.             z+=[' ',' ','|',' ']
  46.             x+=[' ','_','|',' ']
  47.         elif shuru[i]=='8':
  48.             s+=[' ','_',' ',' ']
  49.             z+=['|','_','|',' ']
  50.             x+=['|','_','|',' ']
  51.         elif shuru[i]=='9':
  52.             s+=[' ','_',' ',' ']
  53.             z+=['|','_','|',' ']
  54.             x+=[' ','_','|',' ']
  55.     for i in s:
  56.         print(i,end='')
  57.     print(' ')
  58.     for i in z:
  59.         print(i,end='')
  60.     print(' ')
  61.     for i in x:
  62.         print(i,end='')
  63.     print('\n')
  64. while True:
  65.     shuru=shu()
  66.     if shuru=='0000':
  67.         exit()
  68.     else:
  69.         xianshi(list(shuru))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-10 14:49:35 | 显示全部楼层
学习一下!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-12 14:02:11 | 显示全部楼层
本帖最后由 zealstar 于 2017-2-12 14:07 编辑

python看到第10集,还在学习,编了如下代码:
我的LCD构成貌似和楼主不一样……主要是自己想多了……
  1. def print_num(num_list):
  2.     if num_list == []:
  3.         return
  4.     count = 0
  5.     for i in num_list:
  6.         if i in ['0','2','3','5','6','7','8','9']:
  7.             print(" -- ", end='\t')
  8.         elif i in ['1','4']:
  9.             print("    ", end='\t')
  10.         if count >= 9:
  11.             break
  12.         count += 1
  13.     if count < 9:
  14.         print('')
  15.     count = 0

  16.     for i in num_list:
  17.         if i in ['0','4','8','9']:
  18.             print("|  |", end='\t')
  19.         elif i in ['1']:
  20.             print(" |  ", end='\t')
  21.         elif i in ['2','3','7']:
  22.             print("   |", end='\t')
  23.         elif i in ['5','6']:
  24.             print("|   ", end='\t')
  25.         if count >= 9:
  26.             break
  27.         count += 1
  28.     if count < 9:
  29.         print('')
  30.     count = 0
  31.    
  32.     for i in num_list:
  33.         if i in ['0','1','7']:
  34.             print("    ", end='\t')
  35.         elif i in ['2','3','4','5','6','8','9']:
  36.             print(" -- ", end='\t')
  37.         if count >= 9:
  38.             break
  39.         count += 1
  40.     if count < 9:
  41.         print('')
  42.     count = 0

  43.     for i in num_list:
  44.         if i in ['0','6','8']:
  45.             print("|  |", end='\t')
  46.         elif i in ['1']:
  47.             print(" |  ", end='\t')
  48.         elif i in ['2']:
  49.             print("|   ", end='\t')
  50.         elif i in ['3','4','5','7','9']:
  51.             print("   |", end='\t')
  52.         if count >= 9:
  53.             break
  54.         count += 1
  55.     if count < 9:
  56.         print('')
  57.     count = 0

  58.     for i in num_list:
  59.         if i in ['0','2','3','5','6','8','9']:
  60.             print(" -- ", end='\t')
  61.         elif i in ['1','4','7']:
  62.             print("    ", end='\t')
  63.         if count >= 9:
  64.             break
  65.         count += 1
  66.     if count < 9:
  67.         print('')
  68.     else:
  69.         print_num(num_list[(count+1):])
  70.    
  71. number = input("请输入一串数字:")
  72. while not (number.isdigit()):
  73.     print("输入非法,请重新输入!")
  74.     number = input("请输入一串数字:")
  75. print_num(list(number))
复制代码


执行结果:
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-12 22:15:09 | 显示全部楼层
我来贴一下代码
  1. LCD=['|','__','|','  ',' ']
  2. P1=[[4,1,4],[4,3,4],[4,1,4],[4,1,4],[4,3,4],[4,1,4],[4,1,4],[4,1,4],[4,1,4],[4,1,4]]
  3. P2=[[0,3,2],[4,3,2],[4,1,2],[4,1,2],[0,1,0],[0,1,4],[0,1,4],[4,3,2],[0,1,2],[0,1,2]]
  4. P3=[[0,1,2],[4,3,2],[0,1,4],[4,1,0],[4,3,0],[4,1,0],[0,1,2],[4,3,2],[0,1,2],[4,1,0]]


  5. a=input("Please input the number:")
  6. for each_num in a:
  7.         i=int(each_num)
  8.         for j in P1[i]:
  9.                 print("%s"%(LCD[j]),end='')
  10.         print("  ",end='')
  11. print()
  12. for each_num in a:
  13.         i=int(each_num)
  14.         for j in P2[i]:
  15.                 print("%s"%(LCD[j]),end='')
  16.         print("  ",end='')
  17. print()
  18. for each_num in a:
  19.         i=int(each_num)
  20.         for j in P3[i]:
  21.                 print("%s"%(LCD[j]),end='')
  22.         print("  ",end='')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-23 18:02:02 | 显示全部楼层
  1. lcd_number = { 0:[' _ ','| |','|_|'],\
  2.                1:['   ','  |','  |'],\
  3.                2:[' _ ',' _|','|_ '],\
  4.                3:[' _ ',' _|',' _|'],\
  5.                4:['   ','|_|','  |'],\
  6.                5:[' _ ','|_ ',' _|'],\
  7.                6:[' _ ','|_ ','|_|'],\
  8.                7:[' _ ','  |','  |'],\
  9.                8:[' _ ','|_|','|_|'],\
  10.                9:[' _ ','|_|',' _|'] }

  11. while True:

  12.   input_number = input('Input the numbers:')

  13.   for i in range(3):
  14.     for j in input_number:
  15.       print(lcd_number[int(j)][i],end = ' ')
  16.     print('')
复制代码


0.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-22 21:22:51 | 显示全部楼层
本帖最后由 solomonxian 于 2017-3-22 21:53 编辑
  1. def ledNum(number):
  2. """使传入的数字变成LED显示的模样打印出来"""
  3.     s = """
  4. _     _  _     _  _  _  _  _
  5. | | |  _| _||_||_ |_   ||_||_|
  6. |_| | |_  _|  | _||_|  ||_| _|"""
  7.     num = str(number)
  8.     if not num.isdigit():
  9.         return print("请输入数字")
  10.     s_num = 1
  11.     # 只有3*n,不要怕嵌套循环
  12.     for i in range(3):
  13.             for j in num:
  14.             n = int(j)*3 + s_num
  15.             print(s[n:n+3], end="")
  16.         print("")
  17.         s_num += 31
  18.            
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 14:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表