Python 捕获特定边界时出错

Python 捕获特定边界时出错,python,error-handling,Python,Error Handling,您好,python comunity 如何阻止循环 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

您好,python comunity

如何阻止循环

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
error33=2
青少年存活率=-1.0
当error33>1时:
而不是(0<青少年存活率<1):
survivalrateforjuniles=输入(“请输入穷人的生存率\n”)
尝试:
青少年生存率=浮动(青少年生存率)
除值错误外:
青少年存活率=-1
打印(“请输入一个介于0和1之间的数字”)
打印('做你想做的')
错误33=0

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

error33
永远不会改变吗?然后它就不会停止了。你甚至会编码吗?在这个代码中有很多东西是错误的。不需要将int转换为int,
error33=2
就可以了。您的条件为“错误33”,它从未被修改,也从未被使用过。你有两个
,一个在另一个里面,其中一个永远不会结束。只有当
survivalrateforjuniles
根本不是浮动时,循环才会中断,如果
survivalrateforjuniles
不是一个介于0和1之间的浮点数,那么你似乎希望它被打破。好吧,我要拍一下你的背@efferagana,你怎么知道
error33
应该在
else
部分进行更改呢?@Matthias,我刚刚猜这就是你在代码中使用的形状。如果你想退出循环,在某个时刻你必须改变错误33。你可以在你想换的地方换。如果这是相对于输入必须是浮点的事实,那么我会在
survivalrate…