如何用if判断连续状态,在while循环中实现连续两次x为'ok'时打印'double'
代码调整方案
你需要额外新增一个变量记录上一次循环中x的取值,即可实现连续两次匹配的判断逻辑,调整后可运行的代码如下:
import random import time a = 5 # 存储上一次循环的x取值,初始值设为非'ok'即可 last_x = "" while True: b = random.randint(0, 10) print(b) # 初始化本次x的默认值,避免条件不满足时变量未定义 x = "" if a > b: x = "ok" print(x) # 连续两次都是ok的判断逻辑 if x == "ok" and last_x == "ok": print("double") # 更新上一次x的状态,供下一轮循环判断 last_x = x # 可选:添加延时避免输出速度过快 time.sleep(0.5)
核心改动说明
- 新增
last_x全局变量,用来缓存上一轮循环中x的取值,初始值设置为非ok的空字符串即可,避免第一次命中ok就误触发double输出 - 每轮循环先给
x赋默认空值,解决原代码中a <= b时x未定义的隐患 - 每轮循环末尾更新
last_x的取值为当前轮的x值,即可完成连续状态的校验
内容的提问来源于stack exchange,提问作者fyec
相关产品推荐
相关产品推荐

