如果输入负数,则停止 while 循环

时间:2021-07-21 12:26:40

标签: python while-loop break

我是从学习 Python 开始的,现在我坚持使用 WHILE 循环,所以如果您能给我一些建议,我将不胜感激。

所以,这是我的代码,如果我输入负数并打印(“错误输入”),我需要停止整个代码,但是我的代码在输入负数时仍然通过并打印我也(“平均价格:”)。 我不想在输入时打印(“平均价格是:”),例如(2,3,6, -12) - 仅打印(“错误输入”)。我现在最后一次打印在 WHILE 循环中,但我正在尝试找到解决方案:) 可能有更简单的解决方案,但正如我所说,我是新手并且仍在学习 提前致谢。

price= int(input("Enter the price: "))

price_list=[]

while price!= 0:
    price_list.append(price)
    if price< 0:
       print("Wrong entry")
       break
    price=int(input())

    price_sum= sum(price_list)
print(f"Avg price is: {price_sum / len(price_list)}")

5 个答案:

答案 0 :(得分:3)

使用 while/else 循环会产生您想要的行为。

  • 如果遇到 while 循环中的中断,则 else 中的代码不会运行

代码

price= int(input("Enter the price: "))

price_list=[]

while price!= 0:
    price_list.append(price)
    if price< 0:
       print("Wrong entry")
       break
    price=int(input())

    price_sum= sum(price_list)
else:
    print(f"Avg price is: {price_sum / len(price_list)}")

答案 1 :(得分:1)

因为在循环之外,所以会一直运行。

试试这个:

price= int(input("Enter the price: "))

price_list=[]

while price != 0:
    if price< 0:
       print("Wrong entry")
       break
    price_list.append(price)
    price=int(input())            
    price_sum= sum(price_list)
if price > 0:
    print(f"Avg price is: {price_sum / len(price_list)}")

答案 2 :(得分:1)

如果你不想在得到负数时运行其余的代码,你可以这样做:

price= int(input("Enter the price: "))
ok = True
price_list=[]

while price!= 0:
    price_list.append(price)
    if price< 0:
       print("Wrong entry")
       ok = False
       break
    price=int(input())
if ok:
    price_sum= sum(price_list)
    print(f"Avg price is: {price_sum / len(price_list)}")

答案 3 :(得分:0)

这里有两种选择。您可以在 while 保护中包含检查,像这样 while price > 0 您可以使用关键字 break 并在循环内添加一个 if 保护,像这样

if price < 0:
    break

由于您第一次输入价格是在循环外,最好的做法是将保护添加到 while 循环中,以便在第一个输入为负的情况下跳过它。

答案 4 :(得分:0)

您在这里进行过程编程。你 print 在循环外声明它。此外,没有检查语句的控制语句。所以不管输入如何,print语句都会被执行。

由于任何非空列表都是真值,您可以检查列表是否为空或是否包含某些元素

price= int(input("Enter the price: "))

price_list=[]

while price!= 0:
    
    if price< 0:
       print("Wrong entry")
       break
    price_list.append(price)
    price=int(input())
if price_list:
    price_sum= sum(price_list)
    print(f"Avg price is: {price_sum / len(price_list)}")