如何实现输入数字至0停止,按自身次数打印每个输入数字?
代码修正方案
原代码存在三个核心问题:
- 仅接收了一次输入,没有实现循环接收数字直到输入0的逻辑
- Python是大小写敏感语言,代码里的
N/n、Tmp/tmp都是不同变量,会导致未定义错误 - 没有存储所有非0输入值,无法逐个处理每个输入的打印需求
修正后的代码如下:
# 创建列表存储所有非0输入 numbers = [] while True: num = int(input()) if num == 0: break numbers.append(num) # 遍历列表,按数值次数打印每个数字 for n in numbers: tmp = n while tmp > 0: print(n) tmp -= 1
逻辑说明
- 用
while True构建无限循环,持续接收用户输入 - 每次输入判断是否为0,是则终止输入循环;否则将数字存入列表
- 遍历存储的数字列表,对每个数字用内层循环打印对应次数
测试输入3、2、1、0时,输出为:
3 3 3 2 2 1
内容的提问来源于stack exchange,提问作者Qazaaleh Taheri
相关产品推荐
相关产品推荐

