我在一个程序上有一个语义错误,在python中先升后降

2024-05-19 03:02:42 发布

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

所以,我对python比较陌生,我有这个语义错误。我基本上是在做一个程序,上升到50,然后再下降。总的来说,这不是我的全部计划,而是我似乎无法解决的一部分。这就是我所做的:

maxH = 50
current = 0

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

    print(current)

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

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


Tags: 程序trueif错误语义语句逻辑current
3条回答

一些丑陋的餐巾纸代码的背后,但输出是你正在寻找的,可以给你一个如何避免问题的想法

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

您需要将逻辑分为两个步骤:

  • 递增直到达到最大值
  • 直到你回到零为止

这样就行了

current = 0
maxH = 50

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

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

您不会退出循环。因此,当当前值达到50时,它将执行else语句,使其达到49,然后从49<;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)

相关问题 更多 >

    热门问题