鱼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)][i],end = '   ')
    print()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-25 23:35:35 | 显示全部楼层
本帖最后由 sd小舅子 于 2016-12-25 23:38 编辑
lcd = {0:[' _ ','| |','|_|'],
       1:['   ','  |','  |'],
       2:[' _ ',' _|','|_ '],
       3:[' _ ',' _|',' _|'],
       4:['   ','|_|','  |'],
       5:[' _ ','|_ ',' _|'],
       6:[' _ ','|_ ','|_|'],
       7:[' _ ','  |','  |'],
       8:[' _ ','|_|','|_|'],
       9:[' _ ','|_|',' _|']}
num = input('请输入数字:')
while True:
    if num.isdigit():
        break
    else:
        num = input('输入有误,请重新输入:')
for i in range(3):
    for each in num:
        print(lcd[int(each)][i],end = '')
    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 编辑


不过其实用个列表也很简洁的
pdic = [' _  | | |_| ','      |   | ',' _   _| |_  ',' _   _|  _| ','    |_|   | ',
                ' _  |_   _| ',' _  |_  |_| ',' _    |   | ',' _  |_| |_| ',' _  |_|  _| ']
temp = input('Input the number:')
s = ['','','']
for i in temp:
        for j in range(3):
                s[j] += pdic[int(i)][j*4:j*4+4]
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 | 显示全部楼层
while True:
    a = input(r'input the numbers:')
    numdict = {
               0:[' _ ','| |','|_|'],
               1:['   ',' | ',' | '],
               2:[' _ ',' _|','|_ '],
               3:[' _ ',' _|',' _|'],
               4:['   ','|_|','  |'],
               5:[' _ ','|_ ',' _|'],
               6:[' _ ','|_ ','|_|'],
               7:[' _ ','  |','  |'],
               8:[' _ ','|_|','|_|'],
               9:[' _ ','|_|',' _|']
               }

    show = ['','','']


    for each in a:
        each = int(each)
        for i in range(3):
            show[i] += numdict[each][i]

    for each in show:
        print(each)



"""
 _      _  _       _   _  _   _   _
| |  |  _| _| |_| |_  |_   | |_| |_|
|_|  | |_  _|   |  _| |_|  | |_|  _|
    
""" 

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

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

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

使用道具 举报

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

使用道具 举报

发表于 2017-2-9 13:26:03 | 显示全部楼层
看了这里面的其他代码,觉得简洁又比我这个效率高,多做做练习能学到很多啊
def shu():
    while True:
        shuru=input('请输入需要转变的数字,输入0000结束:')
        if shuru.isdigit():
            return shuru
        else:
            print('输入有误,请重新输入!!!')
            shu()
def xianshi(shuru):
    s=[]
    z=[]
    x=[]
    l=len(shuru)
    for i in range(l):
        if shuru[i]=='0':
            s+=[' ','_',' ',' ']
            z+=['|',' ','|',' ']
            x+=['|','_','|',' ']
        elif shuru[i]=='1':
            s+=[' ',' ',' ',' ']
            z+=[' ','|',' ',' ']
            x+=[' ','|',' ',' ']            
        elif shuru[i]=='2':
            s+=[' ','_','_',' ']
            z+=[' ','_','|',' ']
            x+=['|','_',' ',' ']            
        elif shuru[i]=='3':
            s+=[' ','_',' ',' ']
            z+=[' ','_','|',' ']
            x+=[' ','_','|',' ']
        elif shuru[i]=='4':
            s+=[' ',' ',' ',' ']
            z+=['|','_','|',' ']
            x+=[' ',' ','|',' ']
        elif shuru[i]=='5':
            s+=[' ','_',' ',' ']
            z+=['|','_',' ',' ']
            x+=[' ','_','|',' ']
        elif shuru[i]=='6':
            s+=[' ','_',' ',' ']
            z+=['|','_',' ',' ']
            x+=['|','_','|',' ']
        elif shuru[i]=='7':
            s+=[' ','_',' ',' ']
            z+=[' ',' ','|',' ']
            x+=[' ','_','|',' ']
        elif shuru[i]=='8':
            s+=[' ','_',' ',' ']
            z+=['|','_','|',' ']
            x+=['|','_','|',' ']
        elif shuru[i]=='9':
            s+=[' ','_',' ',' ']
            z+=['|','_','|',' ']
            x+=[' ','_','|',' ']
    for i in s:
        print(i,end='')
    print(' ')
    for i in z:
        print(i,end='')
    print(' ')
    for i in x:
        print(i,end='')
    print('\n')
while True:
    shuru=shu()
    if shuru=='0000':
        exit()
    else:
        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构成貌似和楼主不一样……主要是自己想多了……
def print_num(num_list):
    if num_list == []:
        return
    count = 0
    for i in num_list:
        if i in ['0','2','3','5','6','7','8','9']:
            print(" -- ", end='\t')
        elif i in ['1','4']:
            print("    ", end='\t')
        if count >= 9:
            break
        count += 1
    if count < 9:
        print('')
    count = 0

    for i in num_list:
        if i in ['0','4','8','9']:
            print("|  |", end='\t')
        elif i in ['1']:
            print(" |  ", end='\t')
        elif i in ['2','3','7']:
            print("   |", end='\t')
        elif i in ['5','6']:
            print("|   ", end='\t')
        if count >= 9:
            break
        count += 1
    if count < 9:
        print('')
    count = 0
    
    for i in num_list:
        if i in ['0','1','7']:
            print("    ", end='\t')
        elif i in ['2','3','4','5','6','8','9']:
            print(" -- ", end='\t')
        if count >= 9:
            break
        count += 1
    if count < 9:
        print('')
    count = 0

    for i in num_list:
        if i in ['0','6','8']:
            print("|  |", end='\t')
        elif i in ['1']:
            print(" |  ", end='\t')
        elif i in ['2']:
            print("|   ", end='\t')
        elif i in ['3','4','5','7','9']:
            print("   |", end='\t')
        if count >= 9:
            break
        count += 1
    if count < 9:
        print('')
    count = 0

    for i in num_list:
        if i in ['0','2','3','5','6','8','9']:
            print(" -- ", end='\t')
        elif i in ['1','4','7']:
            print("    ", end='\t')
        if count >= 9:
            break
        count += 1
    if count < 9:
        print('')
    else:
        print_num(num_list[(count+1):])
   
number = input("请输入一串数字:")
while not (number.isdigit()):
    print("输入非法,请重新输入!")
    number = input("请输入一串数字:")
print_num(list(number))

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

使用道具 举报

发表于 2017-2-12 22:15:09 | 显示全部楼层
我来贴一下代码
LCD=['|','__','|','  ',' ']
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]]
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]]
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]]


a=input("Please input the number:")
for each_num in a:
        i=int(each_num)
        for j in P1[i]:
                print("%s"%(LCD[j]),end='')
        print("  ",end='')
print()
for each_num in a:
        i=int(each_num)
        for j in P2[i]:
                print("%s"%(LCD[j]),end='')
        print("  ",end='')
print()
for each_num in a:
        i=int(each_num)
        for j in P3[i]:
                print("%s"%(LCD[j]),end='')
        print("  ",end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

while True:

  input_number = input('Input the numbers:')

  for i in range(3):
    for j in input_number:
      print(lcd_number[int(j)][i],end = ' ')
    print('')

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 08:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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