You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让脚本顶部的while循环持续检测变量并保持运行?

问题分析

你的代码里,顶部的while example == 1循环只会执行一次——进入循环后你把example设为0,循环条件不满足就直接终止了。后续你通过input()等待输入,再把example改回1,但这时候原来的循环已经结束,不会再重新触发检测。

解决方案

要实现持续检测example状态的需求,最直接的方式是用多线程:让一个线程后台持续监控变量,主线程负责处理输入操作。

示例代码:

import threading
import time

example = 1

def monitor_example():
    while True:
        if example == 1:
            print("test")
            global example
            example = 0
        time.sleep(0.1)  # 降低CPU占用

# 启动后台监控线程,daemon=True表示主线程结束时该线程自动退出
threading.Thread(target=monitor_example, daemon=True).start()

# 主线程处理输入
while True:
    test = input()
    example = 1

代码说明

  • 后台线程monitor_example会一直运行,每隔0.1秒检查一次example的值,一旦发现是1就执行print("test")并将其设为0。
  • 主线程负责等待用户输入,每次输入完成后把example重置为1,后台线程会立刻检测到并执行对应操作。

如果不想用线程,也可以把所有逻辑放到一个外层循环里,但这种方式下input()会阻塞整个程序,只有在输入完成后才会检测example状态,体验不如线程方案:

example = 1
while True:
    if example == 1:
        print("test")
        example = 0
    # 这里输入会阻塞,只有输入后才会继续循环检测
    test = input()
    example = 1

内容的提问来源于stack exchange,提问作者Ewan1165

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:05:54