我被困在带有 while 循环测验问题的 if-else 条件语句上

I am stuck on an if-else conditional statement with while loop quiz question

提问人:Emilio Velazquez 提问时间:6/30/2023 更新时间:6/30/2023 访问量:70

问:

我正在 saylor academy 做 CS105,我正在参加第 3 单元测验,其中一个问题要求:

使用“if-elif”(我认为它们的意思是if-else,因为它后来要求使用if-elif-else语句,所以如果有任何混淆,他们的意思是if-else而不是“if-elif”)流控制以及“while”循环,它将:

指示用户输入一个大于 0 且小于或等于 10 的数字,并将该输入作为浮点值存储在变量中

如果输入数字大于 0 且小于或等于 10, 使用“while”循环将数字与自身相加,直到总和超过 100 的值。

总和超过值 100 后,使用 print 语句输出总和 否则,输出消息“您未输入介于 1 和 10 之间的值”

我只能把这段代码记下来,并思考 if-else 和 while 循环的整体结构,里面有另一个 if-else。

有经验的人可以向我推荐一些代码调整,使其正常运行并满足要求。即使我尝试使用 break 函数,我也一直在获得无限的 while 循环,所以我求助于使用 true 和 false,但这也不起作用。

这是我到目前为止所拥有的:

inval=float(input('输入大于零且小于或等于 10 的数字: ')) if(inval>0)and(inval<=10): 而 True: if(inval<100): inval+inval 还: inval=假 打印(inval) 还: print('您没有输入介于 1 和 10 之间的值')

我试图创建一个 for-else 循环,这样如果输入在约束中,那么它将形成 while 循环,但是当我不得不添加另一个条件语句时,我感到困惑(当它将数字添加到其自身足够多的次数时,它应该停止 while 循环,当它大于 100 时),但我无法这样做,这就是我陷入困境的地方。

python-3.x if-statement while-loop 无限 循环

评论


答:

0赞 Samay Gupta 6/30/2023 #1

由于一些问题,您的代码无法正常工作。

  1. 一旦数字在 [1, 10] 范围内,您就运行了一个无限循环。缓解这种情况的一个选项是为 while 循环条件设置一个单独的变量,一旦它大于 100,您可以将其设置为 False。
  2. 您正在向自身添加 inval,但您没有将结果存储在任何地方。我建议创建一个新变量并继续在结果中添加 inval。

工作代码如下所示:

inval = float(input('Input a number greater than zero and less than or equal to 10: '))
if (inval > 0) and (inval <= 10):
    running = True
    result = 0
    while running:
        if (result < 100):
            result = result + inval
        else:
            running = False
    print(result)
else:
    print('You did not enter a value between 1 and 10')

我建议的更多改进是,您可以在 while 循环中检查条件,而不是在其中包含 if 语句。Python 还支持链接条件,您也可以简化第一个 if 条件。这将使您的代码看起来像这样:

inval = float(input('Input a number greater than zero and less than or equal to 10: '))
if 0 < invalid <= 10:
    result = 0
    while result < 100:
        result = result + inval
    print(result)
else:
    print('You did not enter a value between 1 and 10')

评论

0赞 Emilio Velazquez 6/30/2023
非常感谢伙计,我不能要求更好的指导!!