python - 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 ")
如果你们中的任何人可以帮助我,我将不胜感激。
解决方案
我认为该程序无法按您的意愿运行,因为您创建了两个 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)
推荐阅读
- asp.net-mvc - 如何使用不同的模型将数据传递给局部视图?
- c# - 我怎样才能使这个 xamarin 开关渲染器代码工作?
- flutter - 为父容器提供较小宽度后,OutlineButton 中的图标未居中
- python - 更新到 Spyder 4.1 后出现内核错误
- javascript - JQuery UI Sortable - 如何在一个容器中对两种类型的项目进行排序
- swift - ARKit – 视口大小与真实屏幕分辨率
- python - 使用 Python pandas 在每小时时间序列中应用每月级别损失因子
- java - 交集后按Java中的特定属性对对象列表进行排序
- security - 将私钥粘贴到 Jenkins 门户网站是否安全?
- sql - 我有两个主键,我怎样才能使我们不能再次使用其中一个键