python - 捕获特定范围时出错

标签 python error-handling

你好python社区,
如何阻止此循环?

error33 = int(2)
    while error33 > 1:
        while True:
                try:
                    survivalrateforjuveniles = float(input("Please enter the survival rate for poomen"))##Float input is being used as
                    break
                except ValueError:
                    print("Please enter a number between 0 and 1")
                    continue
                else:
                    break
非常感谢

最佳答案

这有效...

error33 = 2
while error33 > 1:
        while True:
                try:
                    survivalrateforjuveniles = float(input("Please enter the survival rate for poomen\n"))
                    break
                except ValueError:
                    print("Please enter a number between 0 and 1")
                    continue
                else:
                    error33 = 0
                    break

我不知道您在做什么...但是我想我会使用类似以下内容:
error33 = 2
survivalrateforjuveniles = -1.0
while error33 > 1:
    while not (0 < survivalrateforjuveniles < 1):
        survivalrateforjuveniles = input("Please enter the survival rate for poomen\n")
        try:
            survivalrateforjuveniles = float(survivalrateforjuveniles)
        except ValueError:
            survivalrateforjuveniles = -1
        print("Please enter a number between 0 and 1")

    print('do what you want')
    error33 =0

与您的解决方案没有太大不同,但是您不需要break并且看起来更健壮。但是,创建一个函数来读取survivalrate...和其他输入(我想您已经拥有)会更好,因为您不会多次使用同一行代码(这是编写优秀软件的基本实践之一) 。

关于python - 捕获特定范围时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39869219/

相关文章:

python - 为什么 iPython 笔记本解释注释掉的行?

python - 使用多模型的装袋算法

python - 告知R包keras Python的正确位置

python - 如何从字符串中提取 float

spring - grpc状态未从服务器拦截器发送到客户端

error-handling - 为什么 fs::read_dir() 在 Result<DirEntry, Error> 上返回一个迭代器

python - Scrapy找不到蜘蛛

java - 从Java代码调用Python文件并获取结果时出错

error-handling - 为什么 "server overloaded"错误页面显然不受服务器过载的影响?

sql-server - SQL Agent作业错误如何处理?