为什么我的if语句即使满足条件也不会中断for循环?

时间:2019-09-10 00:07:05

标签: python-3.x for-loop break

我有一个循环。此循环的工作是逐一执行一系列功能。 如果用户输入代码“ exite”,则功能的一部分之一就是将变量game_exit设置为“ 1”。 我已经确认该函数在被询问时将game_exit设置为“ 1”,并且该变量已全球化。

我的问题是,尽管在函数和if语句中game_exit都等于“ 1”,但是代码拒绝中断for循环。它只是结束函数,并继续列表中的下一个条目。

程序本身运行没有任何其他问题。

#game__ execute the game__game_function function for each question and answer set.
time.sleep(1.5)
for function in game__functions:
    if game_exit == "1":
        break
    else:
        game__functions()
'''

1 个答案:

答案 0 :(得分:0)

您没有提供足够的代码或输出来查看game_exit是否实际上可以是字符串"1",或者它实际上是整数1还是布尔值True。您应该(真正地学会)使用调试器并逐步执行代码,或者至少将以下打印语句添加到代码中,并将结果输出添加到问题中:

for function in game__functions:
    print(game_exit, type(game_exit), game_exit == "1")
    if game_exit == "1":
        print('breaking the loop')
        break
    else:
        print('NOT breaking the loop')
        game__functions()
print('loop exited')

这些将为您提供有关代码执行的实际详细信息的反馈。