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

时间:2019-05-20 09:24:54

标签: 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)

应该检查播放器是输入“前进”还是“后退”并相应地更新ypos。但是实际发生的是,如果您输入“ backward”,则仅在一半的时间内起作用。 “前进”变量可以正常工作,但“前进”变量仅在每使用一次更新变量时才返回。我该怎么做?

2 个答案:

答案 0 :(得分:3)

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

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)

答案 1 :(得分:0)

正如@ 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)