打印星号的三角形图案

时间:2014-10-14 03:55:33

标签: for-loop python-3.x

我需要使用嵌套for循环和print('*', end=' ')来创建显示here的模式: enter image description here

这是我的代码。我已经弄明白了前两个。

n = 0

print ("Pattern A")
for x in range (0,11):
    n = n + 1
    for a in range (0, n-1):
        print ('*', end = '')
    print()
print ('')
print ("Pattern B")
for b in range (0,11):
    n = n - 1
    for d in range (0, n+1):
        print ('*', end = '')
    print()
print ('')

当我开始模式C和D时,我尝试以下方法:

print ("Pattern C")
for e in range (11,0,-1):
    n = n + 1
    for f in range (0, n+1):
        print ('*', end = '')
    print()
print ('')
print ("Pattern D")
for g in range (11,0,-1):
    n = n - 1
    for h in range (0, n-1):
        print ('*', end = '')
    print()

但结果与A和B相同。帮助表示赞赏!

15 个答案:

答案 0 :(得分:2)

模式C和D都需要前导空格,而您不打印任何空格,只有星星。

以下是打印所需前导空格的替代代码:

print ("Pattern C")
for e in range (11,0,-1):
    print((11-e) * ' ' + e * '*')

print ('')
print ("Pattern D")
for g in range (11,0,-1):
    print(g * ' ' + (11-g) * '*')

这是输出:

Pattern C
***********
 **********
  *********
   ********
    *******
     ******
      *****
       ****
        ***
         **
          *

Pattern D

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

更详细地说,请考虑以下这一行:

print((11-e) * ' ' + e * '*')

打印(11-e)个空格后跟e个星号。这提供了制作图案所需的前导空间。

如果您的老师想要嵌套循环,那么您可能需要将print((11-e) * ' ' + e * '*')转换为循环打印每个空格,一次一个,然后是每个星标,一次一个。

模式C通过嵌套循环

如果你按照我给出的关于嵌套循环的提示,你会得到一个模式C的解决方案,如下所示:

print ("Pattern C")
for e in range (11,0,-1):
    #print((11-e) * ' ' + e * '*')
    for d in range (11-e):
        print (' ', end = '')
    for d in range (e):
        print ('*', end = '')
    print()

答案 1 :(得分:2)

for i in range(1,n+1): print '{:>{}}'.format('#'*i, n)
this is For pattern D


for i in range(1,n-1): print '{:>{}}'.format('#'*i, n)
this is For pattern c

答案 2 :(得分:1)

Pythonic这样做的方式。每个模式只需要一行代码(使用列表解析)。

n = 10

# for A
print('\n'.join(['*'*i for i in range(1,n+1)]))

#output
*
**
***
****
*****
******
*******
********
*********
**********


# for B
print('\n'.join(['*'*i for i in range(n+1,0,-1)]))

#output
***********
**********
*********
********
*******
******
*****
****
***
**
*

# for C
print('\n'.join([' '*(n-i) + '*'*i for i in range(n,0,-1)]))

#output
**********
 *********
  ********
   *******
    ******
     *****
      ****
       ***
        **
         *


# for D
print('\n'.join([' '*(n-i) + '*'*i for i in range(1,n+1)]))

#output
         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

答案 3 :(得分:1)

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

答案 4 :(得分:0)

学习一种简单的方法:
代码1:

for n in range(0,5):
    n +=1
    print ("*" *(0+n))

它的作用:

  1. 对于范围(0,5)中的n: - >调用你想要循环执行的次数范围
  2. 将int的值增加1,因此每次循环运行时从0到5的范围内,它将int n递增1
  3. 现在打印字符串“”并将其乘以int n + 0的值,所以当int n = 0时,按逻辑int n递增1并打印(“(0 + n))= print(“”*(0 + 1))= *
  4. <强>输出:
    *
    **
    ***
    ****
    *****

    <强>码2:

    for n in range(-5,0):
        n +=1
        print ("*" *(0-n+1))
    

    <强>输出:
    ****
    ***
    **
    *

答案 5 :(得分:0)

i=0
while(i<5):
    j=0
    while(j<=i):
        print("*",end="") #end="" is given to stay on same line
        j=j+1
    print("")  #it will take u to new line
    i=i+1
    j=0
i=i-2
j=i
while(i>=0):
    while(j>=0):
        print("*",end="")
        j=j-1
    print() #will also work
    i=i-1
    j=i
  

这也可行

答案 6 :(得分:0)

for i in range (1,n):    # loop will execute from 1 to 4(n-1)
    for j in range(1,i+1):
        print("*",end="")
    print()
for i in range (n+1,1,-1):
    for j in range(i,1,-1):
        print("*",end="")
    print()

使用for循环

答案 7 :(得分:0)

def fun (n):
    return n
n=int(raw_input("Enter the number"))
print "The given number is",n
for i in range (n,0,-1):
    print "*"*i

输出:

The given number is 3
***
**
*

答案 8 :(得分:0)

使用空格可以创建不同的不同模式: 1。

def pattern(limit):

    for i in range(limit+1):
        print((limit-i)*"  "+ ' #'*i)    

pattern(4)

Output: 
       #
     # #
   # # #
 # # # #

2。从上面的代码中删除一个空格,并将在金字塔中更改模式

def pattern(limit):
    for i in range(limit+1):
        print((limit-i)*" "+ ' #'*i)       
pattern(4)

output: #
       # #
      # # #
     # # # # 

3:不会创建空格print((limit-i)*“” +'#'* i)

 #
 # #
 # # #
 # # # #

答案 9 :(得分:0)

for i in range(0,5):
for j in range(0,i+1):
    print("*",end="")
print()
for k in range(5,0,-1):
for l in range(k-1,0,-1):
    print("*",end="")
print()  

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

答案 10 :(得分:0)

功能:

def arrow(my_char, max_length):
    for i in range(max_length*2):
        if i <= max_length:
            print(my_char*i)
        if i > max_length:
            print(my_char*(max_length*2-i))

main():

def main():
    print(arrow('*', 8))

if __name__ == "__main__":
    main()

输出:

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

答案 11 :(得分:0)

模式1

for x in range(1,11):
    print("*"*x)

输出

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

模式2

for x in range(10,0,-1):
    print("*"*x)

输出

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

模式3

 i=0
    for x in range(10,0,-1):
            print(" "*i,end="")


       print("*"*x)
        i+=1

输出

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

模式4

i=10
for x in range(1,11):
        print(" "*i,end="")
        print("*"*x)
        i-=1

输出

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

答案 12 :(得分:0)

试试这个!

  a)
            *                                                                                                                                                    
            **                                                                                                                                                   
            ***                                                                                                                                                  
            ****                                                                                                                                                 
            *****  

            public class Main { 
                public static void main(String[] args) {
                    int n=5;
                    for(int i=1;i<=n;i++)
                    {
                        for(int j=1;j<=i;j++)
                        {
                           System.out.print("*"); 
                        }
                        System.out.println();
                    }
                }
             }

            b)
            *****                                                                                                                                                
             ****                                                                                                                                                
              ***                                                                                                                                                
               **                                                                                                                                                
                *


            public class Main {
            public static void main(String[] args) {
                int n=5;
                for(int i=1;i<=n;i++)
                {
                        for(int j=1;j<=(i-1);j++)
                        {
                           System.out.print(" "); 
                        }
                        for(int j=i;j<=n;j++)
                        {
                            System.out.print("*");
                        }
                        System.out.println();
                }
            }
         }

        c)
            *                                                                                                                                                
           **                                                                                                                                                
          ***                                                                                                                                                
         ****                                                                                                                                                
        *****

        public class Main
        {
            public static void main(String[] args)
            {       int n=5;
                    for(int i=n;i>0;i--)        
                    {
                       for(int j=1;j<=(i-1);j++)
                       {
                          System.out.print(" "); 
                       }
                       for(int j=i;j<=n;j++)
                       {
                          System.out.print("*");
                       }
                       System.out.println();
                }
            }
         }

        d)
        *****                                                                                                                                                
        ****                                                                                                                                                 
        ***                                                                                                                                                  
        **                                                                                                                                                   
        * 


        public class Main
        {
            public static void main(String[] args) {
                int n=5;
                for(int i=n;i>0;i--)
                {
                    for(int j=1;j<=i;j++)
                    {
                        System.out.print("*");
                    }
                    System.out.println();
                }
            }
        }

答案 13 :(得分:0)

var n = 5;

    for(int row = 0 ; row < n; row++)
    {
        for(int col = 1; col <= n; col++)
        {
            if(col < n - row)
            {
                Console.Write(" ");
            }
            else
            {
                Console.Write("*");
            }

        }
        Console.WriteLine();

    }

(D)

答案 14 :(得分:0)

对于范围在(1,7)中的i: print(“” (7-i)+“ ” *(i))

输出:

  *
 **
***