首页 > 解决方案 > Python如何在达到某些条件后停止添加到列表中

问题描述

我正在做一个用户必须输入值的项目。如果用户键入超过 300 的值 3 次,则循环应该结束。如果用户键入的值小于 300,则应提示警告消息。另一个标准是,如果用户不满足上述条件,我需要允许用户退出循环。现在,我尝试使用列表来做,但我的代码似乎没有计算输入的数量。

list1 = list()
counter = 1 
while counter <= 3: 
    ask = float(input("Please enter each of the value: ")) 
    while ask != "":
        list1.append(str(ask))
        ask = float(input("Please enter each of the value: "))
        if ask >= 50:
            counter += 1 
        else:
            print("Value must be more than 300. If you do not meet the criteria, please press 'enter'. ")
print(list1)

以下代码是我的原始代码,没有考虑最小输入值。

counter = 1 
while counter <= 3:
    ask = float(input("Please enter each of the value: ")) 
    if ask >= 50:
        counter += 1 
    else:
        print("Value must be more than 300 ")

如果你们中的任何人可以帮助我,我将不胜感激。

标签: pythonpython-3.xloopsif-statementwhile-loop

解决方案


我认为该程序无法按您的意愿运行,因为您创建了两个 while 循环:第一个 while 的条件是while counter<=3, 好的,但随后您又创建了另一个 while 条件是ask !="",因此程序将在第二个 while 循环内运行,直到条件为 no更真实,第一个 while 没有“看到”计数器的变化。

顺便说一句,我认为您可以只使用一个 while 循环(第一个),然后编写一个 if 条件来验证值(>300)。

当您尝试将字符串元素转换为浮点类型时,如果无法将值转换为该类型,则会引发错误,您可以使用 try-except 块。

while counter < 3:
      try:
           ask = float(input("xxxxx")
           if ask >= 50:
               counter += 1
           else:
               print("xxxxx")
      except ValueError:
           break
print(list1)

推荐阅读