鱼C论坛

 找回密码
 立即注册
查看: 2236|回复: 6

[已解决]将数字转化成LCD形式代码不理解

[复制链接]
发表于 2021-1-11 06:57:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 跳起来学编程 于 2021-1-11 07:15 编辑
  1. font =""" _     _  _     _  _  _  _  _
  2. | |  | _| _||_||_ |_   ||_||_|
  3. |_|  ||_  _|  | _||_|  ||_| _|"""
  4. while True:
  5.     num = input('请输入数字:')
  6.     if num.isdigit():
  7.         break
  8.     else:
  9.         print('输入错误!', end = '')
  10. for line in range(3):
  11.     for n in num:
  12.         print(font[31 * line + int(n) * 3: 31 * line + int(n) * 3 + 3], end = '')
  13.     print()
复制代码
最佳答案
2021-1-11 09:12:28
  1. font =""" _     _  _     _  _  _  _  _
  2. | |  | _| _||_||_ |_   ||_||_|
  3. |_|  ||_  _|  | _||_|  ||_| _|"""
  4. print(font)#我们直接将font打印看看他到底是什么状态
  5. '''
  6. _     _  _     _  _  _  _  _
  7. | |  | _| _||_||_ |_   ||_||_|
  8. |_|  ||_  _|  | _||_|  ||_| _|
  9. '''
  10. #上面就是font的实际状态,因为代码中没有对齐,所以看起来有点别扭

  11. print(len(font))#我们打印一下font的整体字符串长度,是92


  12. for i in font.split("\n"):
  13.     print(len(i))#分别打印每行字符串长度,结果是30,30,30,每个数字分别由3个长度坐标组成
  14.     #为什么加起来是90而不是92,因为字符串font本身含有两个换行符,所以后边用31作公因数
  15.    
  16. while True:
  17.     num = input('请输入数字:')
  18.     if num.isdigit():#检验输入是否完全由数字组成
  19.         break
  20.     else:
  21.         print('输入错误!', end = '')

  22. for line in range(3):#line==0,1,2  31*line 就分别是 0,31,62,就是每一行的第一个字符位置
  23.     for n in num:
  24.         a = 31 * line + int(n) * 3 #分别打印num组成数字的每行的开始坐标
  25.         b = 31 * line + int(n) * 3 + 3#分别打印num组成数字的每行的结束坐标
  26.         print(font[31 * line + int(n) * 3: 31 * line + int(n) * 3 + 3], end = '')
  27.         #相当于 print(font[a:b],end=''),for循环内不换行,因为num还没打印完毕,否则散架了
  28.     print() #此时打印打印换行,因为line是逐行打印,由3行组成,本质就是font的新组合方式显示num
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-11 06:59:28 | 显示全部楼层

        print(font[31 * line + int(n) * 3: 31 * line + int(n) * 3 + 3], end = '')
    print()
这串代码不理解  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-11 07:13:42 | 显示全部楼层
删去最后一行代码则打印笔画数,不能打印出成形的lcd数字形式,不懂为什么要这样写还是这个31是?....3:31是切片吗?....我好蔡
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-11 07:18:06 From FishC Mobile | 显示全部楼层

回帖奖励 +4 鱼币

列表切片,加个括号上去就清楚了
print(font[(31 * line + int(n) * 3) : (31 * line + int(n) * 3 + 3)], end = '')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-11 07:24:26 | 显示全部楼层
hrp 发表于 2021-1-11 07:18
列表切片,加个括号上去就清楚了
print(font[(31 * line + int(n) * 3) : (31 * line + int(n) * 3 + 3)], ...

为啥要乘个31
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-11 09:01:34 | 显示全部楼层

回帖奖励 +4 鱼币

好像也不是很正确啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-11 09:12:28 | 显示全部楼层    本楼为最佳答案   
  1. font =""" _     _  _     _  _  _  _  _
  2. | |  | _| _||_||_ |_   ||_||_|
  3. |_|  ||_  _|  | _||_|  ||_| _|"""
  4. print(font)#我们直接将font打印看看他到底是什么状态
  5. '''
  6. _     _  _     _  _  _  _  _
  7. | |  | _| _||_||_ |_   ||_||_|
  8. |_|  ||_  _|  | _||_|  ||_| _|
  9. '''
  10. #上面就是font的实际状态,因为代码中没有对齐,所以看起来有点别扭

  11. print(len(font))#我们打印一下font的整体字符串长度,是92


  12. for i in font.split("\n"):
  13.     print(len(i))#分别打印每行字符串长度,结果是30,30,30,每个数字分别由3个长度坐标组成
  14.     #为什么加起来是90而不是92,因为字符串font本身含有两个换行符,所以后边用31作公因数
  15.    
  16. while True:
  17.     num = input('请输入数字:')
  18.     if num.isdigit():#检验输入是否完全由数字组成
  19.         break
  20.     else:
  21.         print('输入错误!', end = '')

  22. for line in range(3):#line==0,1,2  31*line 就分别是 0,31,62,就是每一行的第一个字符位置
  23.     for n in num:
  24.         a = 31 * line + int(n) * 3 #分别打印num组成数字的每行的开始坐标
  25.         b = 31 * line + int(n) * 3 + 3#分别打印num组成数字的每行的结束坐标
  26.         print(font[31 * line + int(n) * 3: 31 * line + int(n) * 3 + 3], end = '')
  27.         #相当于 print(font[a:b],end=''),for循环内不换行,因为num还没打印完毕,否则散架了
  28.     print() #此时打印打印换行,因为line是逐行打印,由3行组成,本质就是font的新组合方式显示num
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 07:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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