我写了一个程序,将六边形形状移动了多次 但我觉得它看起来很脏 所以我想减少长度,我想有效地写,这是最好的吗?
import time
from tkinter import*
tk = Tk()
canvas=Canvas(tk, width=1000, height=1000, background="black")
canvas.pack()
canvas.create_polygon(300,200,300,250,340,225,fill="yellow")
k = int(input("input value"))
for q in range(0,k):
for x in range(0,10):
canvas.move(1,5,0)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,5,5)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,-5,5)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,-5,0)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,-5,-5)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,5,-5)
tk.update()
time.sleep(0.03)
答案 0 :(得分:3)
for x in range(0,10):
canvas.move(1,5,5)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,-5,5)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,-5,0)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,-5,-5)
tk.update()
time.sleep(0.03)
for x in range(0,10):
canvas.move(1,5,-5)
tk.update()
time.sleep(0.03)
将上述代码移到函数中,这样就不会编写冗余代码
def TKUptake(minRange, maxRange, CanvasMove, sleepTime):
"""
minRange : (Int) Min range for list = 0
maxRange : (Int) Max range for list = 10
CanvasMove : Dict for canvas move
canvasMove[x]= 1
canvasMove[y]= 5
canvasMove[z]=-5
"""
for x in range(minRange, maxRange):
canvas.move(CanvasMove[x],CanvasMove[y],CanvasMove[z])
tk.update()
time.sleep(sleeptime)