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

Python根据输入生成指定数量相同星号行的代码问题如何修复

问题原因

你代码的问题在于多写了一层不必要的嵌套循环:

  • 外层循环for i in range(0,n)会执行n次,i的取值依次是0、1、2……n-1
  • 内层循环for j in range(0,i)的执行次数等于i的值,所以总打印行数是0+1+2+……+(n-1) = n*(n-1)/2

刚好当n=3时,32/2=3,和你要的行数一致,所以看起来是正确的,n取其他值的时候输出行数就会和预期不符。比如你输入4时,实际打印行数是6,你大概率是数错成了5行,输入5时刚好是54/2=10,和你观察到的一致。

修复方法

直接去掉内层循环即可,只保留一层循环执行n次打印:

def rows(n):
    row = "*" * 10 
    for i in range(n):
        print(row)

cant = int(input("Choose the number of rows: "))
rows(cant)

如果想要更简洁的写法,也可以不用显式写循环:

def rows(n):
    print('\n'.join(['*'*10]*n))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:18:02