如果输入负数,则停止 while 循环
Stop the while loop if enter the negative number
我已经开始学习 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)}")
这里有两种选择。您可以在 while 守卫中包括检查,像这样 while price > 0
或 您可以使用关键字 break
并在循环内添加一个 if 守卫,像这样
if price < 0:
break
由于您第一次输入价格是在循环之外,所以最好的办法是将守卫添加到 while 循环中,以便在第一次输入为负数时跳过它。
因为在循环外,所以总是运行。
所以试试这个:
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)}")
如果你不想在得到负数时运行剩下的代码,你可以这样做:
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)}")
您正在此处进行过程编程。你 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)}")
使用 while/else 循环产生您想要的行为。
- 如果遇到while循环中的break,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)}")
我已经开始学习 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)}")
这里有两种选择。您可以在 while 守卫中包括检查,像这样 while price > 0
或 您可以使用关键字 break
并在循环内添加一个 if 守卫,像这样
if price < 0:
break
由于您第一次输入价格是在循环之外,所以最好的办法是将守卫添加到 while 循环中,以便在第一次输入为负数时跳过它。
因为在循环外,所以总是运行。
所以试试这个:
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)}")
如果你不想在得到负数时运行剩下的代码,你可以这样做:
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)}")
您正在此处进行过程编程。你 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)}")
使用 while/else 循环产生您想要的行为。
- 如果遇到while循环中的break,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)}")