所以,我对python比较新,我有这个语义错误。我基本上试图制作一个高达50的程序,然后退回。这不是我的整个程序,而是我似乎无法解决的一部分。这就是我所做的:
maxH = 50
current = 0
while True:
if current < maxH:
current += 1
else:
current -=1
print(current)
我知道明确的错误是当电流变为最大值时,它减去1然后if语句再次为真。
任何有关克服此逻辑错误的替代方法的帮助都会有所帮助,谢谢。
答案 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并且无休止地退回。