Python嵌套循环问题:代码仅打印最后一行输入的星号行
嘿,我帮你找出问题啦!你的代码没法打印所有星号行,主要是两个小失误在搞鬼:
问题1:多余的内层循环+break语句
你加了一个for j in range(line)的内层循环,还在里面放了break——这会导致每次外层循环启动后,内层只跑一次就直接跳出,不仅完全没必要,还打乱了原本的执行逻辑。
问题2:外层循环次数不对
你用了range(line + 1),这会让循环多执行一次(比如用户输入要3行,循环会跑4次),和你想要打印line行的需求不匹配。
修正后的代码
把多余的内层循环删掉,调整外层循环的范围,就能完美实现你的需求:
line = int(input("How many items are in the chart?: ")) for i in range(line): number = int(input("How much of this specific item?: ")) print("*" * number)
简单解释
- 外层循环
range(line)会精准执行line次,正好对应你需要的行数。 - 每次循环里读取用户输入的数量,直接打印对应数量的星号,逻辑清晰直接,没有多余的嵌套和中断。
内容的提问来源于stack exchange,提问作者bhaikal21




