Elif语句每次仅返回正确的输出

2024-05-10 15:04:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python(以及一般的编程)是完全陌生的,我无法理解为什么这段代码不起作用

posx = 0
posy = 0
doForever = True

while doForever == True:
  if input() == "forward":
    posy += 1
    print(posy)
  elif input() == "backward":
    posy -= 1
    print(posy)

它应该检查播放器是否输入“forward”或“backward”,并相应地更新ypos。但实际情况是,如果输入“backward”,它只在一半的时间内有效。“forward”可以正常工作,但“backward”只能每隔一次返回更新的变量。我该怎么做?你知道吗


Tags: 代码trueinputif编程播放器forwardprint
2条回答

您应该只有一个输入,因此只需创建一个变量并对其执行所有条件:

posx = 0
posy = 0
doForever = True

while doForever == True:
  s = input()
  if s == "forward":
    posy += 1
    print(posy)
  elif s == "backward":
    posy -= 1
    print(posy)

正如@U9 Forward所说的,您可以简单地使用while指令而不必== True

posx = 0
posy = 0
doForever = True

while doForever:
  s = input()
  if s == "forward":
    posy += 1
    print(posy)
  elif s == "backward":
    posy -= 1
    print(posy)

相关问题 更多 >