Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中窗口中的Repeat函数_Python_Timer_Turtle Graphics - Fatal编程技术网

Python中窗口中的Repeat函数

Python中窗口中的Repeat函数,python,timer,turtle-graphics,Python,Timer,Turtle Graphics,如何在窗口中重复此海龟功能一段时间?这段代码以圆形绘制正方形,我希望它在完成后重新启动,并持续3分钟30秒 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.b

如何在窗口中重复此海龟功能一段时间?这段代码以圆形绘制正方形,我希望它在完成后重新启动,并持续3分钟30秒

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()

这里有一个方法,你可以做到这一点。在计时功能中,记录开始时间。然后,将开始时间加上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()
从datetime导入datetime,timedelta
def timed():
start_time=datetime.now()
结束时间=开始时间+时间增量(分=3秒=30)
while datetime.now()

在python datetime模块上,它是用于任何类型的时间或日期操作的go-to模块

你的问题是什么,只需写一个循环,让它检查时间,如果是3:30退出,检查时间,我的意思是导入时间,利用它的一些函数来获取时间并从开始时间中减去,如果它等于3:30退出,谢谢你的回答。如何在不重新打开窗口的情况下重新启动程序?我是否应该在draw_art()函数之外使用“window=turtle.Screen()”?重新启动时希望它做什么?您希望它清除您目前的进度,并从一个干净的黄色屏幕开始吗?还是继续它停止的地方?