为什么程序正常运行并且代码无错误,但应该有的线条画不出来,求强者解答

import turtle
import time
def drawline(draw):
if draw :
turtle.penup()
turtle.fd(5)
turtle.pendown()
turtle.fd(30)
turtle.penup()
turtle.fd(5)
turtle.right(90)
else:
turtle.penup()
turtle.fd(40)
turtle.right(90)
def drawdig(dig):
if dig=='-':
turtle.write('年',font= ('Arial',18,'normal'))
elif dig =='=':
turtle.write('月',font = ('Arial',18,'normal'))
elif dig =='^':
turtle.write('日',font = ('Arial',18,'normal'))
else:
drawline(True)if dig in[2,3,4,5,6,8,9] else drawline(False)
drawline(True)if dig in[0,1,3,4,5,6,7,8,9] else drawline(False)
drawline(True)if dig in[0,2,3,5,6,8] else drawline(False)
drawline(True)if dig in[0,2,4,6,8] else drawline(False)
turtle.left(90)
drawline(True)if dig in[0,4,5,6,8,9] else drawline(False)
drawline(True)if dig in[0,2,3,5,6,7,8,9] else drawline(False)
drawline(True)if dig in[0,1,2,3,4,7,8,9] else drawline(False)
turtle.left(180)
turtle.fd(20)
def drawall(date):
for i in date:
drawdig(i)

def play():
turtle.setup(800,350,200,200)
turtle.pencolor('pink')
turtle.penup()
turtle.fd(-300)
turtle.pensize(5)
drawall(str(time.strftime('%Y-%m=%d^',time.gmtime())))
turtle.hideturtle()
turtle.done
play()

turtle.done之后少了()括号
用 turtle.penup()提笔之后都没有用 turtle.pendown()落笔.自然画不出了
dig in[2,3,4,5,6,8,9]
dig中是字符串 ,[2,3,4,5,6,8,9]列表中是数值,字符串与数值比较都是不相等的,比如"1"不等于1
要把dig转成数值或者[]列表中改成字符串 ['2','3','4','5','6','8','9']

你题目的解答代码如下:

import turtle
import time
def drawline(draw):
    if draw :
        turtle.penup()
        turtle.fd(5)
        turtle.pendown()
        turtle.fd(30)
        turtle.penup()
        turtle.fd(5)
        turtle.right(90)
        turtle.pendown()
    else:
        turtle.penup()
        turtle.fd(40)
        turtle.right(90)
        turtle.pendown()
def drawdig(dig):
    if dig=='-':
        turtle.write('年',font= ('Arial',18,'normal'))
        turtle.penup()
        turtle.fd(50)
        turtle.pendown()
    elif dig =='=':
        turtle.write('月',font = ('Arial',18,'normal'))
        turtle.penup()
        turtle.fd(50)
        turtle.pendown()
    elif dig =='^':
        turtle.write('日',font = ('Arial',18,'normal'))
    else:
        dig = int(dig)
        drawline(True)if dig in[2,3,4,5,6,8,9] else drawline(False)
        drawline(True)if dig in[0,1,3,4,5,6,7,8,9] else drawline(False)
        drawline(True)if dig in[0,2,3,5,6,8] else drawline(False)
        drawline(True)if dig in[0,2,4,6,8] else drawline(False)
        turtle.left(90)
        drawline(True)if dig in[0,4,5,6,8,9] else drawline(False)
        drawline(True)if dig in[0,2,3,5,6,7,8,9] else drawline(False)
        drawline(True)if dig in[0,1,2,3,4,7,8,9] else drawline(False)
        turtle.left(180)
        turtle.penup()
        turtle.fd(20)
        turtle.pendown()

def drawall(date):
    for i in date:
        drawdig(i)

def play():
    turtle.setup(800,350,200,200)
    turtle.pencolor('pink')
    turtle.penup()
    turtle.fd(-300)
    turtle.pendown()
    turtle.pensize(5)
    drawall(str(time.strftime('%Y-%m=%d^',time.gmtime())))
    turtle.hideturtle()
    turtle.done()
play()

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632