python - 有没有更好的方法来检查输入中的字符串?
问题描述
我在 python 中制作了一个简单的基于坐标的运动系统,而运动检测看起来效率很低。这就是我现在所拥有的:
mvmt = str(input("Where do you want to move? "))
if mvmt == "w":
zpos += 1
elif mvmt == "a"
xpos -= 1
elif mvmt == "d":
xpos += 1
elif mvmt == "s":
zpos -= 1
有更好的方法吗?
解决方案
您可以使用存储位置并更新它的类,如下所示:
class Position:
def __init__(self):
self.dct = {'w': (1, 0), 's': (-1, 0), 'd': (0, 1), 'a': (0, -1)}
self.pos = (0, 0)
def new_position(self, mvmt):
self.pos = tuple(map(sum, zip(self.pos, self.dct[mvmt])))
return self.pos
pos = Position()
print(pos.new_position('a'))
# (0, -1)
print(pos.new_position('w'))
# (1, -1)
print(pos.new_position('w'))
# (2, -1)
print(pos.new_position('s'))
# (1, -1)
推荐阅读
- javascript - 如何在 React 的 return 语句中使用获取结果?
- tensorflow - 我想在我的自定义层中使用 keras 层,但我无法将层的输出作为张量而不是对象返回
- javascript - 使用 bootstrap-vue 中的传单删除标记单击时弹出的默认对话框
- asp.net-mvc - 有没有办法在 Visual Studio 2019 for Mac 的上下文中获取 ViewBag、Layout 和 Model?
- c# - CryptoStream.Read 的数组边界错误
- video - FFMPEG一开始就卡在00:00:00 speed=0x很长时间
- python - pandas to_excel 如何只合并列?
- docker - Elastic with Kibana on docker 让 Kibana 服务器还没有准备好
- windows - 在 Windows 8 上使用 Get-AppxPackageManifest
- java - 我想知道扫描仪代码在 Java 中是如何工作的