我是从学习 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)}")
答案 0 :(得分:3)
使用 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)}")