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

请求协助编写符合测试用例的迭代式单线条图案生成代码

解决迭代生成指定图案的问题

嘿,我来帮你搞定这个图案生成的问题~首先看你当前的代码,核心问题是每次循环都在重复添加相同的*-片段,完全没根据迭代次数调整短横线的数量,所以才会输出重复的*-*-*-*-这种不符合要求的结果。

先拆解目标规律

咱们先把需求里的图案拆解开,就能找到核心逻辑:

  • pattern(1) → *-:1个* + 1个-
  • pattern(4) → *-*--*---*----:依次是*+1个-、*+2个-、*+3个-、*+4个-,把这些片段直接拼接起来
  • pattern(6)同理:从1到6,每个序号对应一个*加对应数量的-,全部串起来就行

修正后的代码

def pattern(number):
    result = ""
    for i in range(1, number + 1):
        # 每个片段是*加上i个短横线
        result += "*" + "-" * i
    return result

代码为啥这么写?

  1. 先初始化空字符串result,用来存最终的图案
  2. 循环范围用range(1, number + 1),这样能遍历1到number的所有整数(包含number本身,不会少生成最后一段)
  3. Python里字符串乘以数字会自动重复对应次数,所以"-" * i就能直接得到i个短横线,再加上*就是当前序号对应的片段
  4. 把每个片段依次拼到result里,最后返回就行

测试验证一下

  • 调用pattern(1),输出*- ✔️
  • 调用pattern(4),输出*-*--*---*---- ✔️
  • 调用pattern(6),输出*-*--*---*----*-----*------ ✔️

顺便说下原代码的问题

  1. 你用了#但需求里是*,符号不对
  2. 循环范围是range(1, number),会少执行一次循环(比如number=4时只跑3次,少了最后一段)
  3. 每次循环都加固定的*-,完全没根据i的大小调整短横线数量,自然出不来递增的效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:33:21