整理了下思路,其中,7段数码管的分析如下:
第一笔 t.fd(40) t.right(90) 如果这个数是 [2, 3, 4, 5, 6, 8, 9] 这一笔需要 否则 这一笔不需要
第二笔 t.fd(40) t.right(90) 如果这个数是 [0, 1, 3, 4, 5, 6, 7, 8, 9] 这一笔需要 否则 这一笔不需要
第三笔 t.fd(40) t.right(90) 如果这个数是 [0, 2, 3, 5, 6, 8, 9] 这一笔需要 否则 这一笔不需要
第四笔 t.fd(40) t.right(90) 如果这个数是 [0, 2, 6, 8] 这一笔需要 否则 这一笔不需要
第五笔 t.left(90) t.fd(40) t.right(90) 如果这个数是 [0, 4, 5, 6, 8, 9] 这一笔需要 否则 这一笔不需要
第六笔 t.fd(40) t.right(90) 如果这个数是 [0, 2, 3, 5, 6, 7, 8, 9] 这一笔需要 否则 这一笔不需要
第七笔 t.fd(40) t.right(90) 如果这个数是 [0, 1, 2, 3, 4, 7, 8, 9] 这一笔需要 否则 这一笔不需要
所以定义两个判断分支,这一笔需不需要,
画这个数字的函数。这个数字是不是在这一个区间里面。其余按照正常的程序路径来写。
所以,编写的程序代码如下:
def drawline (flag): #定义是否需要这一笔的这一个函数
if flag: #判断语句,如果这个值为真,这个数是否需要这一笔
t.down() #落笔,需要这一笔。
else: #否则
t.up() #抬笔,不需要这一笔
t.fd(40) #执行动作,往前走
t.right(90) # 换向
def drawnum(num) #定义第二个函数,画数字
画第一笔 ,调用这个函数,判断这个数字是否需要。
第二笔, 同上
第三笔, 同上
第四笔, 同上
t.right(90) 换向
第五笔, 同上
第六笔, 同上
第七笔, 同上
调用这个函数,画这个数字。
总之,现阶段有点乱,还需要改进。
代码整理如下:
import turtle
t = turtle.Pen()
t.shape("turtle")
t.speed(3)
def draWline(flag):
if flag:
t.down()
else:
t.up()
t.fd(40)
t.right(90)
def drawnum(num):
draWline(True) if num in [2,3,4,5,6,8,9] else draWline(False)
draWline(True) if num in [0,1,3,4,5,6,7,8,9] else draWline(False)
draWline(True) if num in [0,2,3,5,6,8,9] else draWline(False)
draWline(True) if num in [0,2,6,8] else draWline(False)
t.left(90)
draWline(True) if num in [0,4,5,6,8,9] else draWline(False)
draWline(True) if num in [0,2,3,5,6,7,8,9] else draWline(False)
draWline(True) if num in [0,1,2,3,4,7,8,9] else draWline(False)
drawnum(5)
以上写下来,下次翻阅的话,方便下次快速取用。
来源:oschina
链接:https://my.oschina.net/u/4351661/blog/4339777