主要是你的begin_fill()和end_fill()语句放的位置不对,将其调整到图形绘制出来后的位置。代码中这部分调整一下end_fill()语句位置即可
t.fillcolor("olivedrab")
t.begin_fill()
t.fd(85)
t.seth(0)
t.circle(-42, 150)
t.end_fill
t.seth(45)
t.fd(65)
t.seth(-45)
t.circle(-23, 180)
t.end_fill()
#开始帽檐
t.penup()
t.goto(45, 167)
t.pendown()
t.seth(60)
t.circle(-100, 45)
t.seth(10)
t.circle(-110, 50)