def main():
global currentX,currentY
currentX = 0
currentY = 0
currentlocation = currentX,currentY
print("Starting Location is", currentX,currentY)
print()
#Main menu dialouge
print("Please select direction:")
print("1, North;")
print("2, East;")
print("3, South;")
print("4, West;")
print("5, End this program")
#Loop = to 1 so while loop will go on indefitly until option 5 is pressed.
loop = 1
#try: handles all errors along with except:
try:
while loop == 1:
direction = input("--> ")
print()
direction = int(direction)
if direction == 1:
moveN = currentY + 1
print("Moved North.",currentlocation)
elif direction == 2:
currentX + 1
print("Moved East.",currentlocation)
elif direction == 3:
currentY - 1
print("Moved South.",currentlocation)
elif direction == 4:
currentX - 1
print("Moved West.",currentlocation)
elif direction == 5:
loop = 0
print("Final location is", currentlocation)
else:
print("ERROR:", choice, "is an invalid input.\n"
"Enter a number from 1 to 5.")
except: ValueError
print("Please enter a whole number between 1-5")
main()
我不明白为什么循环不能添加到当前位置。 我得到的结果是 起始位置为0
Please select direction:
1, North;
2, East;
3, South;
4, West;
5, End this program
--> 3
Moved South. (0, 0)
--> 4
Moved West. (0, 0)
实际上,你并没有改变currentX和currentY,你只是在计算你想要的值。要更改它们,您需要为它们指定:
或者,更简洁地说:
你的方向1号箱子看起来也不对劲。出于某种原因,您将分配给
moveN
。我不知道该怎么办。你知道吗编辑:您还需要更新
currentlocation
,以反映位置的变化。你知道吗当你说
实际上并不是用currentX和currentY的引用创建元组,而是用声明时currentX和currentY中的值创建元组。所以每次你改变这些,它都不会更新。你知道吗
解决这个问题的一种方法是将currentlocation转换为函数。你知道吗
然后,代替
只是放
相关问题 更多 >
编程相关推荐