2017-04-12 53 views
0

如何在一段時間內在窗口中重複此龜功能?此代碼以圓形繪製正方形,並且我希望它在完成後重新啓動,併爲此執行3分30秒。在Python中重複窗口中的函數

import turtle 
import threading 



def draw_square(some_shape): 
    for i in range (1,5): 
     some.forward(100) 
     some.right(90) 

def draw_art(): 
    window = turtle.Screen() 
    window.bgcolor("yellow") 
    sqr = turtle.Turtle() 
    sqr.shape("triangle") 
    sqr.color("purple") 
    sqr.speed(1.5) 
    for i in range(1,37): 
     draw_square(sqr) 
     sqr.right(10) 
    window.exitonclick() 

def timed(): 
    threading.Timer(208.0, printit).start() 
    draw_art() 

timed() 
+1

什麼是你的問題,只是寫一個循環,並檢查時間,如果它已經是3:30退出,並通過檢查時間我的意思是進口時間,並利用它的一些功能來獲得時間,並從開始減去時間,如果它等於3:30退出 – chbchb55

回答

-1

這是一種方法,你可以做到這一點。在你的定時功能中,你記錄開始時間。然後,通過將3分30秒添加到開始時間來計算結束時間。

在循環中,您可以在當前時間小於結束時間的情況下繼續繪製。

from datetime import datetime, timedelta 

def timed(): 
    start_time = datetime.now() 
    end_time = start_time + timedelta(minutes=3, seconds=30) 
    while datetime.now() < end_time: 
     draw_art() 

Here are some resources蟒蛇的datetime模塊,它是去到模塊任何時間或日期的操作!

+0

謝謝你的迴應。如何在不重新打開窗口的情況下重新啓動程序?我應該「窗口= turtle.Screen()」draw_art()函數之外? – bubbub

+0

當你重新開始時,你想要它做什麼?你是否希望它能夠清除你迄今爲止的進展並從一個乾淨的黃色屏幕開始?或者只是繼續它離開的地方? –