【问题标题】:To print a pattern in Python using 'for' loop使用“for”循环在 Python 中打印模式
【发布时间】:2020-02-04 05:43:33
【问题描述】:

我尝试了各种程序来获得所需的模式(如下所示)。下面给出了最接近所需结果的程序:

输入:

for i in range(1,6):
    for j in range(i,i*2):
        print(j, end=' ')
    print( )

输出:

1 
2 3 
3 4 5 
4 5 6 7 
5 6 7 8 9 

所需输出:

1
2 3
4 5 6
7 8 9 10 

我可以得到一些提示来获得所需的输出吗?

注意-python 的新手。

【问题讨论】:

    标签: python-3.x for-loop nested-loops


    【解决方案1】:

    将打印的值存储在循环之外,然后在打印后递增

    v = 1
    lines = 4
    for i in range(lines):
        for j in range(i):
            print(v, end=' ')
            v += 1
        print( )
    

    【讨论】:

    • 嘿,这个print() 是做什么的?我不明白我们如何使用print() 转移到新行。
    • 嗯,你在原来的问题中有这个。默认情况下,打印一个换行符。
    【解决方案2】:

    如果您不想跟踪计数并以数学方式解决此问题并能够直接计算任何第 n 行,那么您正在寻找的公式就是 triangle numbers 的公式:

    triangle = lambda n: n * (n + 1) // 2
    for line in range(1, 5):
        t = triangle(line)
        print(' '.join(str(x+1) for x in range(t-line, t)))
    # 1
    # 2 3
    # 4 5 6
    # 7 8 9 10
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-07
      • 2013-04-24
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      相关资源
      最近更新 更多