有没有办法使一会儿true语句运行,但让以后的代码也运行?

时间:2019-04-09 11:24:11

标签: python python-3.x

我正在尝试使程序在按下W时检测到,以将乌龟对象向前移动。但是,要使其始终运行,我需要一会儿True语句。但是,因为True阻止了将来的代码运行,但我的程序由于未到达程序的done()部分而停止了响应。

该程序适用于Windows 10(在Python 3.7上)。我尝试将它放在done()之后无济于事。

这是我的代码。

from turtle import *
import msvcrt

def keyDetect():
    while True:
       if msvcrt.kbhit():
           key = msvcrt.getch()
           return key

linerunner = Turtle()
while True:
    if keyDetect() == "b'w'":
        linerunner.forward(1)

done()

预期结果: 按住W时,乌龟对象将以1的增量向前移动,直到我停止按住它为止。

实际结果: Python.exe没有响应

1 个答案:

答案 0 :(得分:0)

添加另一个条件,告诉您的程序退出循环(break语句),例如按S键:

while True:
    if keyDetect() == "b'w'":
        linerunner.forward(1)
    elif keyDetect() == "b's'":
        break
done()