2017-04-06 6 views
0

六角形を回数だけ動かすプログラムを書いています。
でも汚れていると思います。
長さを短くして効率的に書きたいと思っていますが、これは最高ですか?このまたは任意の答えはあなたの質問は[それを受け入れる]をご検討ください解決した場合(Python GUI)短く効率的なコードを書くにはどうすればいいですか

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) 

答えて

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) 
+0

こんにちは@LinuxUbuntuを書くように、 https://meta.stackexchange.com/q/5234/179419)をクリックしてください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 – Surajano

関連する問題