我正试图写一个程序,其中采取的方向和大小的清单,并输出的距离,机器人从其起始位置。在
我在执行以下代码时遇到一个错误,但我无法确定为什么会出现错误。在
import math
position = [0,0]
direction = ['+Y','-X','-Y','+X','-X','-Y','+X']
magnitude = [9,7,4,8,3,6,2]
i = 0
while i < len(direction):
if direction[i] == '+Y': position[0] += magnitude[i]
elif direction[i] == '-Y': position[0] -= magnitude[i]
elif direction[i] == '+X': position[1] += magnitude[i]
elif direction[i] == '-X': position[1] -= magnitude[i]
else: pass
i += 1
print float(math.sqrt(position[1]**2+position[0]**2))
编辑:
我得到这个错误:
IndentationError: unindent does not match any outer indentation level
很可能你把空格和制表符弄混了。在本例中,将符号放在幅值内并使用}进行过滤可能更容易,如下所示:
x
和{在这种情况下,你可以很容易地得到x和y的总距离。例如,y距离:
^{pr2}$以及特定方向上的总
y
距离:您可以对
x
执行相同的操作,然后用这种方法计算距离。在这是我的离题反应(你的问题是混合制表符和空格,我的答案是简单重写)。在
更改:
for
而不是{if elif elif
移到字典xymoves
math.sqrt
始终返回float
,因此删除了对float
的转换注意,带有xymoves的字典可以扩展到其他方向,例如,使用“N”表示北,“NE”表示东北等
相关问题 更多 >
编程相关推荐