5

アスタリスクのピラミッドを表示するプログラムを C++ で作成しました (以下を参照)。次に、Python でどのように実行されるかを確認したいと思いますが、思ったほど簡単ではありません。

誰かがこれを試したことがありますか?

前もって感謝します。

       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************
4

14 に答える 14

22
def pyramid(rows=8):
    for i in range(rows):
        print ' '*(rows-i-1) + '*'*(2*i+1)

pyramid(8)
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************

pyramid(12)
           *
          ***
         *****
        *******
       *********
      ***********
     *************
    ***************
   *****************
  *******************
 *********************
***********************
于 2011-02-06T03:45:22.837 に答える
5

または、次のことを試すことができます。

def pyramid(size=8):
    for i in range(size):
        row = '*'*(2*i+1)
        print row.center(2*size)
于 2011-02-06T14:20:16.373 に答える
3

次のように文字列乗算を使用できます。

>>> for i in range(size):
...     print '%s%s'%(' '*(size-(i-1)),'*'*((i*2)-1))
...
于 2011-02-06T03:36:57.887 に答える
2

次の機能をお勧めします。

def pyramid(rows=8):
    pyramid_width = rows * 2
    for asterisks in range(1, pyramid_width, 2):
        print("{0:^{1}}".format("*" * asterisks, pyramid_width))

次に試してみてください:

pyramid()

または:

pyramid(4)
于 2011-02-06T11:41:10.227 に答える
2

このコードはあまり Pythonic ではありませんが、読みやすいです。コンパクトなピラミッド描画関数に対する Hugh Bothewell の回答を見てください。

def drawPyramid(rows):
  result = ''

  for i in xrange(rows):
    row = ''
    row += ' ' * (rows - i - 1)
    row += '*' * (2 * i + 1)

    result += row + '\n'

  return result

print drawPyramid(20)
于 2011-02-06T03:50:47.057 に答える
1
user_input = input("How many rows do you want to print? \n")
def stars(a):
    size = int(a)
    for i in range(1, size+1):
        print(" "*(size-i),"*"*(i*2-1))
    

stars(user_input)

How many rows do you want to print?
20
                    *
                   ***
                  *****
                 *******
                *********
               ***********
              *************
             ***************
            *****************
           *******************
          *********************
         ***********************
        *************************
       ***************************
      *****************************
     *******************************
    *********************************
   ***********************************
  *************************************
 ***************************************
于 2020-07-02T07:11:59.000 に答える
0
n=4
m = (2*n)-2
for i in range(0, m):
    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(" ")  


  *   
 *  *   
*  *  *   



于 2019-08-20T04:28:39.873 に答える
-1

私はPythonに非常に慣れていませんが、これが私がそれを解決した方法です:

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

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


于 2016-08-09T12:17:13.613 に答える
-1
def pyramid(row):
       for n in range(row):
              print(' '*(n+1)+' '*(2*(row-n))+'x'+'x'*(2*n+1))

pyramid(row=8)
于 2016-06-14T21:44:28.873 に答える
-1

ダイヤモンドを描くこともできます

def pyramid(r):
    for i in range(r):
        print ("  "*(r-i-1) + "*"*(2*i+1))
    for i in range(r-1,-1,-1):
        print ('  '*(r-i-1) + "*"*(2*i+1))

n=int(input("Enter no of rows:"))
pyramid(n)

pyramid(10)

                  *
                * * *
              * * * * *
            * * * * * * *
          * * * * * * * * *
        * * * * * * * * * * *
      * * * * * * * * * * * * *
    * * * * * * * * * * * * * * *
  * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *  
  * * * * * * * * * * * * * * * * *
    * * * * * * * * * * * * * * *
      * * * * * * * * * * * * *
        * * * * * * * * * * *
          * * * * * * * * *
            * * * * * * *
              * * * * *
                * * *
                  *
>>> 
于 2014-03-13T15:10:20.540 に答える
-2
#!/usr/bin/python
for i in range(1,6):
 for j in range(1,i+1):
   print "*",
 print

O/P: 
===
*
* *
* * *
* * * *
* * * * *

2) 
#!/usr/bin/python
for i in range(1,6):
 for j in range(1,7-i):
   print "*",
 print

O/P:
* * * * *
* * * *
* * *
* *
*

3)
#!/usr/bin/python
for i in range(1,6):
 for j in range(1,6-i):
   print "",
 for k in range(1,i+1):
  print "*",
 print

O/P:

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

4)
#!/usr/bin/python
for i in range(1,6):
 for j in range(1,1+i):
   print "",
 for k in range(1,7-i):
  print "*",
 print

O/P:
 * * * * *
  * * * *
   * * *
    * *
     *
5) 
#!/usr/bin/python
for i in range(1,6):
 for j in range(1,6-i):
   print "",
 for k in range(1,i+1):
  print "*",
 print
for i in range(1,5):
 for j in range(1,1+i):
   print "",
 for k in range(1,6-i):
  print "*",
 print


O/P:
    *
   * *
  * * *
 * * * *
* * * * *
 * * * *
  * * *
   * *
    *
于 2016-12-12T07:57:33.930 に答える