代码卡在 if 语句中,不继续 while 循环中的其余代码

问题描述 投票:0回答:1

我在 while 循环中有一个 if 语句,它应该不断检查条件,然后完成 if 语句中的内容。然而,代码被困在 if 语句中。 test1 是来自 html 应用程序的用户输入,它确实成功通过了。

def main():
    if int(test1) in (1,2): 
        lux = 1
    elif int(test1) in (3,4): 
        lux = 2
    else: 
        lux = 1
    main.a = 1
    #open text files to log to
    with open(path, "w") as f, open(path, "w") as g:
        while main.a == 1:
            if lux == 1: 
                response_mm = 1
                #code gets stuck here
                response_light = 1
            else: 
                response_mm = 0
                response_light = 0
            print('Here') 
            #does not print

我尝试删除第二组 if else 语句,但这不起作用。我还尝试检查第二组 if else 语句中第一组 if else 语句的条件,但这不起作用。

python flask
1个回答
0
投票

这是问题的简单解释以及如何解决它的英文: 问题: 代码卡在 while 循环的 if 语句内,永远不会到达 print('Here') 语句。发生这种情况是因为 while 循环条件 main.a == 1 始终为 true,导致无限循环。 解决方案: 要解决此问题,您需要确保 while 循环可以在某个时刻终止。您可以通过多种方式做到这一点:

在循环内添加退出条件。 必要时使用break退出循环。 更改循环内 main.a 的值,使其最终变得不同于 1。

以下是如何修改代码的简单示例:

def main():
    if int(test1) in (1,2): 
        lux = 1
    elif int(test1) in (3,4): 
        lux = 2
    else: 
        lux = 1
    main.a = 1
    #open text files to log to
    
    with open(path, "w") as f, open(path, "w") as g:
        while main.a == 1:
            if lux == 1: 
                response_mm = 1
                response_light = 1
            else: 
                response_mm = 0
                response_light = 0
            
            print('Here')
            
            # Add an exit condition, for example:
            if some_condition:
                main.a = 0  # This will make the loop terminate

通过此更改,代码应该能够退出 while 循环并继续程序的其余部分。

© www.soinside.com 2019 - 2024. All rights reserved.