Python程序优化

题目:Python 程序 test.py 的功能是用海龟库画图,但是代码比较冗长。请你改进该程序,尽量减少代码行数,但程序功能需要跟改进前保持一致。
请提交改进后的 Python 程序文件。
import turtle as t
t.speed(0)
a = ["red","yellow","blue","green"]
b = 133
c = (b2+b2)**0.5/2

t.up()
t.left(180)
t.forward(199)
t.right(90)
t.forward(199)
t.right(90)
t.down()

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

t.up()
t.right(90)
t.forward(b)
t.left(90)
t.down()

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

t.up()
t.right(90)
t.forward(b)
t.left(90)
t.down()

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

a = ["yellow","blue","green","red",]
b = 133
c = (b2+b2)**0.5/2

t.up()
t.left(90)
t.forward(2*b)
t.right(90)
t.forward(b)
t.down()

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

t.up()
t.right(90)
t.forward(b)
t.left(90)
t.down()

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

t.up()
t.right(90)
t.forward(b)
t.left(90)
t.down()

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

a = ["blue","green","red","yellow",]
b = 133
c = (b2+b2)**0.5/2

t.up()
t.left(90)
t.forward(2*b)
t.right(90)
t.forward(b)

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

t.up()
t.right(90)
t.forward(b)
t.left(90)
t.down()

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

t.up()
t.right(90)
t.forward(b)
t.left(90)
t.down()

for i in range (4):
t.color(a[i])
t.begin_fill()
t.forward(b)
t.right(135)
t.forward(c)
t.right(90)
t.forward(c)
t.end_fill()
t.right(135)
t.forward(b)
t.right(90)

t.hideturtle()
t.done()

img

import turtle as t
t.speed(0)
a = ["red","yellow","blue","green"]
b = 133
c = (b**2+b**2)**0.5/2

t.up()
t.left(180)
for i in range(2):
    t.forward(199)
    t.right(90)
t.down()

for j in range(3):
    if j>0:
        t.up()
        t.left(90)
        t.forward(2*b)
        t.right(90)
        t.forward(b)
        t.down()

    for k in range(3):
        for i in range (4):
            t.color(a[(i+j)%4])
            t.begin_fill()
            t.forward(b)
            t.right(135)
            t.forward(c)
            t.right(90)
            t.forward(c)
            t.end_fill()
            t.right(135)
            t.forward(b)
            t.right(90)
        if k<2:
            t.up()
            t.right(90)
            t.forward(b)
            t.left(90)
            t.down()

t.hideturtle()
t.done()
import turtle as t


def deal_for(a,b,c):
    for i in range(4):
        t.color(a[i])
        t.begin_fill()
        t.forward(b)
        t.right(135)
        t.forward(c)
        t.right(90)
        t.forward(c)
        t.end_fill()
        t.right(135)
        t.forward(b)
        t.right(90)

def changeDir(b):
    t.up()
    t.right(90)
    t.forward(b)
    t.left(90)
    t.down()

class Tur(object):
    
    def pic(self):
        t.speed(0)
        a = ["red","yellow","blue","green"]
        b = 133
        c = (b2+b2)**0.5/2
    
        t.up()
        t.left(180)
        t.forward(199)
        t.right(90)
        t.forward(199)
        t.right(90)
        t.down()
    
        deal_for(a,b,c)
    
        changeDir(b)
    
        deal_for(a,b,c)
    
        changeDir(b)
    
        deal_for(a,b,c)
    
        a = ["yellow","blue","green","red",]
        b = 133
        c = (b2+b2)**0.5/2
    
        t.up()
        t.left(90)
        t.forward(2*b)
        t.right(90)
        t.forward(b)
        t.down()
    
        deal_for(a,b,c)
    
        changeDir(b)
    
        deal_for(a,b,c)
    
        changeDir(b)
    
        deal_for(a,b,c)
    
        a = ["blue","green","red","yellow",]
        b = 133
        c = (b2+b2)**0.5/2
    
        t.up()
        t.left(90)
        t.forward(2*b)
        t.right(90)
        t.forward(b)
    
        deal_for(a,b,c)
    
        changeDir(b)
    
        deal_for(a,b,c)
    
        changeDir(b)
    
        deal_for(a,b,c)
    
        t.hideturtle()
        t.done()

    

if __name__ == '__main__':
    Tur.pic()