整理了下思路,其中,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)

以上写下来,下次翻阅的话,方便下次快速取用。
01-31 22:40