我在程序上出现语义错误,然后在python

时间:2018-01-25 04:04:46

标签: python

所以,我对python比较新,我有这个语义错误。我基本上试图制作一个高达50的程序,然后退回。这不是我的整个程序,而是我似乎无法解决的一部分。这就是我所做的:

maxH = 50
current = 0

while True:
    if current < maxH:
        current += 1
    else:
        current -=1

    print(current)

我知道明确的错误是当电流变为最大值时,它减去1然后if语句再次为真。

任何有关克服此逻辑错误的替代方法的帮助都会有所帮助,谢谢。

4 个答案:

答案 0 :(得分:1)

您需要分两步拆分逻辑:

  • 递增,直至达到最大值
  • 减少直到你回到零。

这样就可以了。

current = 0
maxH = 50

# Increment until current == maxH
while current < maxH:
    current += 1

# Decrement until current == 0
while current > 0:
    current -= 1

答案 1 :(得分:0)

餐巾纸代码有些难看,但输出是你正在寻找的,可以让你知道如何避免这个问题。

maxH = 50
current = 0
flag= "yes"

while flag == "yes":
    if maxH > current:
        current+=1
        print(current)
    else:
        flag = "no"
        break

while flag == "no":
    current-=1
    print(current)
    if current == 0:
        break

答案 2 :(得分:0)

你不会退出循环。因此,当当前命中50时,它将执行带来49的else语句,然后49&lt; 50它将添加1,依此类推。快速修复将添加一个if else语句,以便当current == 50退出循环时

maxH = 50
current = 0

while True:
   if current < maxH:
      current += 1
      print(current)
   elif current == 50:
       print(current)
       break    
   else:
       current -=1
       print(current)

答案 3 :(得分:0)

试试这个:

maxH = 50
current = 0
while True:
    while current < maxH:
        current += 1
        print(current)
    while current > 0:
        current -= 1
        print(current)

它将从0循环到50并且无休止地退回。