如何用Python for循环生成+、-+、+-+交替字符图案?
问题分析与解决方案
你的原代码存在两个关键问题:
- 内层循环中每次打印
"+"后立刻执行print(),导致每个字符单独占一行,无法在同一行输出多个字符。 - 缺少判断输出
"-"的逻辑,所以只会重复打印"+"。
要实现目标图案,核心是根据行号(i)和列号(j)的奇偶组合决定输出字符。观察图案规律:
- 第1行(
i=0):仅第1列(j=0)→"+" - 第2行(
i=1):第1列(j=0)→"-",第2列(j=1)→"+" - 第3行(
i=2):第1列(j=0)→"+",第2列(j=1)→"-",第3列(j=2)→"+"
可以总结出规则:当(i + j) % 2 == 0时输出"+",否则输出"-"。
修正后的代码如下:
n = 3 # 对应你需要的3行图案,若要更多行可修改此值 for i in range(n): for j in range(i + 1): # 根据i+j的奇偶性选择输出字符 print("+" if (i + j) % 2 == 0 else "-", end="") # 内层循环结束后换行,准备打印下一行 print()
输出结果:
+ -+ +-+
如果需要扩展到5行(原代码的n=5),输出会自动变为:
+ -+ +-+ -+-+ +-+-+
另外注意:原代码中print()的位置错误,必须移到外层循环末尾,确保每一行的所有字符打印完成后再换行。
内容的提问来源于stack exchange,提问作者Reynaldy Al
相关产品推荐
相关产品推荐

