如何使用嵌套循环打印指定字符与数字图案?
解决嵌套循环打印图案的问题
问题分析
你原代码的问题在于三层循环逻辑混乱,没有控制每行打印字符的次数等于当前行的序号,反而导致每个字符重复打印了多次,所以输出了每行6个相同字符的结果。下面分别给出两个图案的正确实现:
图案1:字母递增重复
要实现第一行1个A,第二行2个B……第六行6个f的效果,核心是让每行打印的字符次数等于当前行的序号,同时对应到字符串的对应位置:
# 字符串前五个大写、最后一个小写,匹配你的需求 chars = 'ABCDEf' # 循环行号从1到6(共6行) for line_num in range(1, 7): # 获取当前行要打印的字符 current_char = chars[line_num - 1] # 嵌套循环打印line_num次字符,不换行 for _ in range(line_num): print(current_char, end='') # 每行结束后换行 print()
也可以用更简洁的写法(无需嵌套循环,利用字符串乘法特性):
chars = 'ABCDEf' for line_num in range(1, 7): print(chars[line_num - 1] * line_num)
输出结果:
A
BB
CCC
DDDD
EEEEE
ffffff
图案2:偶数递增重复
要实现第一行1个2,第二行2个4……第四行4个8的效果,逻辑类似:每行的数字是2 * 行号,打印次数等于行号:
# 循环行号从1到4(共4行) for line_num in range(1, 5): current_num = str(2 * line_num) # 嵌套循环打印line_num次 for _ in range(line_num): print(current_num, end='') print()
简洁写法:
for line_num in range(1, 5): print(str(2 * line_num) * line_num)
输出结果:
2
44
666
8888
内容的提问来源于stack exchange,提问作者Dweep Desai
相关产品推荐
相关产品推荐

