求每列代码的注解,比如带井符号那种

img

img

图片中的是Python第二版的实例7.1,我想知每列的代码代表的是什么,比如图片当中井字符号标记的那个样子

你在python里一行一行输入运行就知道了的

penup就是抬起笔(不画)
pendown就是落下笔(准备开始画)
left就是左转多少角度
right就是右转多少角度
fd就是画笔向前移动多少像素(如果是pendown就能画,penup就是抬笔移动到新位置)
pensize就是画出线条的粗度
这些都很好理解,其实主要是七段数码管的绘制逻辑:

img


下面七条绘制语句对应了上面图中的顺序,有些数字在某些位置是没有线条的,所以drawline(False)就跳过。

    drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False)
    drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,2,6,8] else drawline(False)
    turtle.left(90)
    drawline(True) if digit in [0,4,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False)
    drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False)

drawdate(date)的参数date是字符串格式如20220608这样的,其函数体是遍历日期字符串中的数字,并用drawDigit画出这个数字
drawDigit函数体中,上面4行的drawLine是从数字的中间一行开始画,然后分别画出右边,下边,左边。画到了左边下面的那一竖,方向由于指向了右边,所以turtle.left(90),让画笔指向方向向上,开始为下面画数字的上半部作准备,代码下面的三个drawLine就是先画左上那一竖,再画最上面一横,再画右上那一竖,由于画完这一竖,方向指向了水平左边,所以又turtle.left(180)把方向指向水平向右,并移动20步,为画下一个数字作准备。