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

Python嵌套for循环实现指定图案打印问题求助

用嵌套for循环实现指定交替符号图案

目标图案

1@
1#3#
1@3@5@
1#3#5#7#

原代码问题分析

你的代码存在两个核心问题:

  1. 符号选择依赖于内层循环变量j的奇偶性,而非行号i的奇偶,导致无法实现隔行切换符号的需求
  2. 内层循环逻辑错误,遍历了1到2i-1的所有数,把奇数j作为数字并直接追加@,偶数j作为#,最终每行末尾都会多出一个@,且符号规则完全不符合预期

修正后的代码

n = int(input("Enter no:"))
for i in range(1, n + 1):
    # 根据行号确定当前行使用的符号
    current_symbol = '@' if i % 2 == 1 else '#'
    # 内层循环生成当前行的所有奇数数字(共i个)
    for num in range(1, 2 * i, 2):
        # 打印数字+当前符号,不换行
        print(f"{num}{current_symbol}", end="")
    # 每行结束后换行
    print()

代码说明

  • 外层循环for i in range(1, n+1):控制打印的总行数,i代表当前行号
  • 符号判断:通过i % 2判断行号奇偶,奇数行使用@,偶数行使用#
  • 内层循环for num in range(1, 2*i, 2):生成当前行需要的所有奇数数字,第i行共有i个奇数(从1开始,步长为2,到2i-1结束)
  • 打印逻辑:每个数字后拼接当前行的符号,用end=""保持同一行输出,所有数字打印完成后换行

测试输出(输入n=4)

1@
1#3#
1@3@5@
1#3#5#7#

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:00:28