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

技术需求:开发可生成至3000年及以后季度的无限迭代函数

实现无限生成季度值的函数

核心思路

用生成器函数实现无限迭代,不需要提前预生成所有季度值,随用随取,完全符合“无限生成”的要求,同时支持自定义起始季度/年份,还能正向、反向生成。

代码实现

基础版(正向无限生成)

def generate_quarters(start_year=2020, start_quarter=1):
    current_year = start_year
    current_quarter = start_quarter
    while True:
        yield f"q{current_quarter} {current_year}"
        # 自动切换季度和年份
        current_quarter += 1
        if current_quarter > 4:
            current_quarter = 1
            current_year += 1

使用示例

# 从q1 2020开始生成前10个季度
quarter_generator = generate_quarters(2020, 1)
for _ in range(10):
    print(next(quarter_generator))

输出结果:

q1 2020
q2 2020
q3 2020
q4 2020
q1 2021
q2 2021
q3 2021
q4 2021
q1 2022
q2 2022

增强版(支持反向无限生成)

如果需要往前无限生成更早的季度,比如从q4 2020倒推到q1 1990、q4 1989...,可以加个反向参数:

def generate_quarters(start_year=2020, start_quarter=1, reverse=False):
    current_year = start_year
    current_quarter = start_quarter
    while True:
        yield f"q{current_quarter} {current_year}"
        if reverse:
            # 往前切换季度
            current_quarter -= 1
            if current_quarter < 1:
                current_quarter = 4
                current_year -= 1
        else:
            # 往后切换季度
            current_quarter += 1
            if current_quarter > 4:
                current_quarter = 1
                current_year += 1

适配需求的优化点

针对“无限生成、格式匹配qX YYYY”的要求,这个方案的优势:

  • 无固定年份上下限,只要持续调用就能一直生成(不管是到2500年还是更早的年份)
  • 格式严格符合要求,输出如q1 2020、q4 2500这类格式
  • 起始点可灵活配置,满足不同场景的生成需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:55:18