首先:我的英语不是很好,所以我希望你能理解我.其次,我是编程新手,所以我不知道很多事情. 我试图用这个代码来为方向分配键,并用我按下的键让乌龟朝着我想要的方向走.我的代码的问题是,键盘模块识别前两个键, turtle 会立即做出react ,但第三个键("a")不会发生这种情况,因为我必须按它两次才能使其工作.我真的希望有人能在这里帮我!

import turtle
import keyboard

turtle.screensize(500, 500)
if keyboard.read_key() == "w":
turtle.setheading(90), turtle.forward(400)
elif keyboard.read_key() == "s":
turtle.setheading(270), turtle.forward(400)
elif keyboard.read_key() == "a":
turtle.setheading(180), turtle.forward(400)
else:
""

推荐答案

if keyboard.read_key() == "w":
    ...
elif keyboard.read_key() == "s":
    ...
elif keyboard.read_key() == "a":
   ...

这是你的问题.每次你拨打read_key(),它就会从键盘上读取另一个键.

因此,这段代码读取一个键并将其与"w"进行比较.如果不相等,则读取另一个关键字,并将其与"S"进行比较.以此类推.

而不是这样做,您希望读取一个键一次,保存它的值,并将该值用于所有比较:

key = keyboard.read_key()
if key == "w":
    ...
elif key == "s":
    ...

Python相关问答推荐

从webhook中的短代码(而不是电话号码)接收Twilio消息

根据条件将新值添加到下面的行或下面新创建的行中

SQLGory-file包FilField不允许提供自定义文件名,自动将文件保存为未命名

如何在Python中将returns.context. DeliverresContext与Deliverc函数一起使用?

在Pandas DataFrame操作中用链接替换'方法的更有效方法

如何列举Pandigital Prime Set

使用groupby Pandas的一些操作

多指标不同顺序串联大Pandas 模型

网格基于1.Y轴与2.x轴显示在matplotlib中

Flask Jinja2如果语句总是计算为false&

交替字符串位置的正则表达式

干燥化与列姆化的比较

如何在海上配对图中使某些标记周围的黑色边框

在Python中从嵌套的for循环中获取插值

如何在Django模板中显示串行化器错误

PYTHON中的selenium不会打开 chromium URL

仅取消堆叠最后三列

在一个数据帧中,我如何才能发现每个行号是否出现在一列列表中?

使用美汤对维基百科表格进行网络刮擦未返回任何内容

奇怪的Base64 Python解码