需求:基于球队胜负条件实现自动连胜计数器
球队连胜计数器实现方案
面向对象实现(推荐)
用类封装状态和逻辑,便于维护和扩展:
class WinStreakCounter: def __init__(self): self.current_streak = 0 def update_result(self, is_victory): if is_victory: self.current_streak += 1 else: self.current_streak = 0 return self.current_streak
使用示例
# 初始化计数器 streak_counter = WinStreakCounter() # 模拟比赛流程:胜、胜、负、胜、胜、胜 print(streak_counter.update_result(True)) # 输出 1 print(streak_counter.update_result(True)) # 输出 2 print(streak_counter.update_result(False)) # 输出 0 print(streak_counter.update_result(True)) # 输出 1 print(streak_counter.update_result(True)) # 输出 2 print(streak_counter.update_result(True)) # 输出 3
轻量闭包实现
如果不需要类结构,闭包可以在不使用全局变量的情况下保存状态:
def build_streak_counter(): streak = 0 def update(is_win): nonlocal streak streak = streak + 1 if is_win else 0 return streak return update
使用示例
counter = build_streak_counter() counter(True) # 返回 1 counter(True) # 返回 2 counter(False) # 返回 0
核心逻辑说明
- 必须保留一个持久化状态变量记录当前连胜数,不能每次判断都重新初始化
- 逻辑规则严格匹配需求:获胜时递增计数,失利时直接重置为0
- 每次更新后返回当前数值,方便对接显示、存储等后续操作
内容的提问来源于stack exchange,提问作者Murilo Evangelista
相关产品推荐
相关产品推荐

