使用for循环python打印三角形金字塔图案

时间:2018-12-13 16:52:28

标签: python python-3.x

我正在使用以下循环代码来打印星型图案,并且代码运行正常。这是我的代码

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

此代码的输出显示为

* 
* * 
* * * 
* * * * 
* * * * * 

现在我的问题是如何打印输出

         * 
        * * 
       * * * 
      * * * * 
     * * * * * 

14 个答案:

答案 0 :(得分:1)

这可以在一个循环和中央填充中实现。

n = int(input('Enter the row you want to print:- '))
sym = input('Enter the symbol you want to print:- ')
for i in range(n):
    print((sym * ((2 * i) + 1)).center((2 * n) - 1, ' '))

答案 1 :(得分:1)

# right angle triangle
for i in range(1, 10):
    print("* " * i)

# equilateral triangle
# using reverse of range
for i , j in zip(range(1, 10), reversed(range(1, 10)):
    print(" " * j + "* " * i)

# using only range()
for i, j in zip(range(1, 10), range(10, -1, -1):
    print(" " * j + "* " * i)

答案 2 :(得分:0)

您只需要在前面添加空格循环即可:

for i in range(1,6):
    for j in range(6-i):
        print(" ", end="")
    for j in range(i):
        print("*", end=" ")
    print()

答案 3 :(得分:0)

实际上,这可以在一个循环中完成:

for i in range(1, 6):
  print (' ' * (5 - i), '* ' * i)

输出:

     * 
    * * 
   * * * 
  * * * * 
 * * * * *

将字符串与整数相乘是最有效的方法。

答案 4 :(得分:0)

这是另一种方式

size = 7
m = (2 * size) - 2
for i in range(0, size):
    for j in range(0, m):
        print(end=" ")
    m = m - 1 # decrementing m after each loop
    for j in range(0, i + 1):
        # printing full Triangle pyramid using stars
        print("* ", end=' ')
    print(" ")

答案 5 :(得分:0)

尝试一下:-

打印星形图案的说明:-

1)第一行用于功能演示打印图案三角形

2)第二行表示空格数

3)外循环的第三行用于处理行数。

4)在循环内循环中处理数字空间和根据要求更改的值。

5)循环后,每个循环递减k值。

6)将k值内循环递减以处理列数并根据外循环改变值。

7)在j循环后打印'*'。

8)每行后面的结尾行

def triangle(n): 
  k = 2*n - 2
  for i in range(0, n): 


    for j in range(0, k): 
        print(end=" ") 

    k = k - 1

    for j in range(0, i+1): 

        print("* ", end="") 


    print("\r") 


n = 5
triangle(n) 

答案 6 :(得分:0)

function printPyramid($n)
{
    //example 1
    for ($x = 1; $x <= $n; $x++) {
        for ($y = 1; $y <= $x; $y++) {
            echo 'x';
        }
        echo "\n";
    }

    // example 2
    for ($x = 1; $x <= $n; $x++) {
        for ($y = $n; $y >= $x; $y--) {
            echo 'x';
        }
        echo "\n";
    }

    // example 3

    for($x = 0; $x < $n; $x++) {
        for($y = 0; $y < $n - $x; $y++) {
            echo ' ';
        }
        for($z = 0; $z < $x * 2 +1; $z++) {
            echo 'x';
        }
        echo "\n";
    }


}

答案 7 :(得分:0)

def triangle(val: str, n: int, type: str):
    for i in range(n):
        if type == "regular":
            print((i + 1) * val)
        elif type == "reversed":
            print((n - i) * val)
        elif type == "inverted":
            print((n - (i + 1)) * " " + (i + 1) * val)
        elif type == "inverted reversed":
            print(i * " " + (val * (n - i)))
        elif type == "triangle":
            print((n - (i + 1)) * " " + ((2*i)+1) * val) 

调用此函数

triangle("*", 5, 'triangle')

输出

    *
   ***
  *****
 *******
********* 

答案 8 :(得分:0)

。非常简单的答案..不要输入复杂的代码。

首先尝试绘制金字塔。通过* ..然后您容易理解代码。.我的解决方案是..最简单..这里是5行金字塔的示例。

number_space  =  5
for   i   in   range (5)

     print('/r')

     print (number_space *"  ", end='')

     number_space=number_space-1

     for star in range (i+1):

                print("*",end="  ")

答案 9 :(得分:0)

#CPP程序,用于在一行中使用一个循环来打印动态金字塔图案。

https://www.linkedin.com/posts/akashdarji8320_cpp-cplusplus-c-activity-6683972516999950336-ttlP

#include

using namespace std;

int main() {
    int rows;

    cout<<"Enter number of rows :: ";
    cin>>rows;

    for( int i = 1, j = rows, k = rows; i <= rows*rows; i++ )
        if( i >= j && cout<<"*" && i % k == 0 && (j += rows-1) && cout<<endl || cout<<" " );
}

答案 10 :(得分:0)

使用字符串乘法, 简单地将一个字符串相乘,这是最直接的方法:

数量 = 5 对于范围内的 e(num, 0, -1): print(" "(e-1)+(""(num-e+1))+(""*(num-e)))

答案 11 :(得分:0)

回答晚了。但正如其他人提到的,这可以在如下所示的单个循环中完成

j=1
for i in range(10,0,-1):
    print(" "*i,"*"*j)
    j+=2

答案 12 :(得分:0)

方法一:理解版

这可能是在 Python 中打印任何图案的最简单方法

n = 5
print('\n'.join([('* '*i).center(2*n) for i in range(1,n+1)]))

使用center的{​​{1}}方法,给它一个宽度作为参数,它会相应地将整个字符串居中。

方法二:普通版

str

答案 13 :(得分:0)

这是打印此图案的最简单方法:

n = int(input("Enter the number of rows: "))
for i in range(1,n+1):
    print(" "*(n-i) + "* "*i)

您必须打印空格 (n-i) 次,其中 n 是行数,i 是循环变量,并添加星号 i 次。这将为您提供所需的模式。请参阅上述代码以获得更好的理解。