为什么在我运行此代码时,错误是
“名称位置未定义?”
我想我已经在定义position
之前
该代码用于使用 r,l,i,d
更改 position(x,y)
def get_position_in_direction(position, direction):
position=(0,1)
x,y=position
direction=input("Please enter an action (enter '?' for help): ")
if direction=='r':
xi,yi=(1,0)
elif direcrion=='l':
xi,yi=(-1,0)
elif direction=='u':
xi,yi=(0,1)
elif direction=='d':
xi,yi=(0,-1)
else:
pass
position=position+xi,yi
return position
print(get_position_in_direction(position, direction))
答案 0 :(得分:1)
我在您的代码中发现了几个问题:
print(get_position_in_direction(position, direction))
,position
和direction
未定义direction
和position
作为函数的输入是无用的,因为您随后会对其进行更新,所以让我们删除更新它们的行if
-else
语句中存在拼写错误,您写了direcrion
而不是direction
。position=position+xi,yi
xi
和yi
将是不确定的。在这种情况下,让我们删除一个受控错误正确的代码是:
def get_position_in_direction(position, direction):
x,y=position
if direction=='r':
xi,yi=(1,0)
elif direction=='l':
xi,yi=(-1,0)
elif direction=='u':
xi,yi=(0,1)
elif direction=='d':
xi,yi=(0,-1)
else:
raise ValueError("The value specified for the direction"
"parameter is not recognised as a valid parameter")
position=(position[0]+xi, position[1]+yi)
return position
position = (0,0)
direction = 'l'
print(get_position_in_direction(position, direction))