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

Python生成逐行递增星号图案,当前仅输出单行星号如何修正?

Python星号图案生成代码修改方案

原代码问题点

  • 函数内仅循环拼接出了一个总长为n+1的星号字符串,没有生成每行对应的内容,也没有包含要求的line x-前缀
  • 仅返回单个字符串,自然只能在同一行输出所有星号
  • 不符合单一功能要求的隐患:原逻辑如果把打印放在函数内就会违反规则,拆分后可以完全避免该问题

修改后代码

def generar_patron(n):
    # 函数仅负责生成对应格式的每行内容,返回列表,不涉及输入输出
    lineas = []
    for num_fila in range(1, n+1):
        contenido = f"line {num_fila}-{'*' * num_fila}"
        lineas.append(contenido)
    return lineas

# 输入输出逻辑放在函数外部实现
cant = int(input("Ingrese la cantidad de filas: "))
resultado = generar_patron(cant)
for linea in resultado:
    print(linea)

逻辑说明

  • 函数接收行数参数n后,循环遍历1到n的整数,每次生成对应行的内容存入列表,最终返回整个列表,完全符合单一功能要求
  • 外部逻辑单独处理用户输入读取、函数调用、结果逐行打印,职责拆分清晰
  • 用Python字符串乘法'*' * num_fila直接生成对应数量的星号,比循环拼接更简洁高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:54:03