将数字转化成LCD形式代码不理解
本帖最后由 跳起来学编程 于 2021-1-11 07:15 编辑font =""" _ __ _____
| || _| _||_||_ |_ ||_||_|
|_|||__|| _||_|||_| _|"""
while True:
num = input('请输入数字:')
if num.isdigit():
break
else:
print('输入错误!', end = '')
for line in range(3):
for n in num:
print(font, end = '')
print()
print(font, end = '')
print()
这串代码不理解 删去最后一行代码则打印笔画数,不能打印出成形的lcd数字形式,不懂为什么要这样写还是这个31是?....3:31是切片吗?....我好蔡 列表切片,加个括号上去就清楚了
print(font[(31 * line + int(n) * 3) : (31 * line + int(n) * 3 + 3)], end = '') hrp 发表于 2021-1-11 07:18
列表切片,加个括号上去就清楚了
print(font[(31 * line + int(n) * 3) : (31 * line + int(n) * 3 + 3)], ...
为啥要乘个31 好像也不是很正确啊。 font =""" _ __ _____
| || _| _||_||_ |_ ||_||_|
|_|||__|| _||_|||_| _|"""
print(font)#我们直接将font打印看看他到底是什么状态
'''
_ __ _____
| || _| _||_||_ |_ ||_||_|
|_|||__|| _||_|||_| _|
'''
#上面就是font的实际状态,因为代码中没有对齐,所以看起来有点别扭
print(len(font))#我们打印一下font的整体字符串长度,是92
for i in font.split("\n"):
print(len(i))#分别打印每行字符串长度,结果是30,30,30,每个数字分别由3个长度坐标组成
#为什么加起来是90而不是92,因为字符串font本身含有两个换行符,所以后边用31作公因数
while True:
num = input('请输入数字:')
if num.isdigit():#检验输入是否完全由数字组成
break
else:
print('输入错误!', end = '')
for line in range(3):#line==0,1,231*line 就分别是 0,31,62,就是每一行的第一个字符位置
for n in num:
a = 31 * line + int(n) * 3 #分别打印num组成数字的每行的开始坐标
b = 31 * line + int(n) * 3 + 3#分别打印num组成数字的每行的结束坐标
print(font, end = '')
#相当于 print(font,end=''),for循环内不换行,因为num还没打印完毕,否则散架了
print() #此时打印打印换行,因为line是逐行打印,由3行组成,本质就是font的新组合方式显示num
页:
[1]