【Python】for文でピラミッドを表示する方法

【Python】for文でピラミッドを表示する方法

目次

基本的なピラミッドの作成

Pythonのfor文を使って、シンプルなピラミッドを作成できます。以下のコードは、5段のピラミッドを表示します。

n = 5
for i in range(1, n + 1):
    print('*' * i)

出力:

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

スペースを使った整形

ピラミッドの形を整えるために、スペースを追加して中央揃えにします。

n = 5
for i in range(1, n + 1):
    print(' ' * (n - i) + '*' * (2 * i - 1))

出力:

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

異なる記号を使ったピラミッド

記号を変更することで、さまざまなデザインのピラミッドを作成できます。

n = 5
for i in range(1, n + 1):
    print(' ' * (n - i) + '#' * (2 * i - 1))

出力:

    #
   ###
  #####
 #######
#########

数字を使ったピラミッド

数字を用いたピラミッドの例です。

n = 5
for i in range(1, n + 1):
    print(' ' * (n - i) + ''.join(str(j) for j in range(1, i + 1)) + ''.join(str(j) for j in range(i - 1, 0, -1)))

出力:

    1
   121
  12321
 1234321
123454321

アルファベットを使ったピラミッド

アルファベットを使ったピラミッドも作成できます。

import string

n = 5
letters = string.ascii_uppercase

for i in range(n):
    print(' ' * (n - i - 1) + letters[:i+1] + letters[i-1::-1])

出力:

    A
   ABA
  ABCBA
 ABCDCBA
ABCDEDCBA

逆ピラミッドの作成

逆ピラミッドを作成するには、ループの範囲を変更します。

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

出力:

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

二重ピラミッドの作成

二重のピラミッド(左右対称)を作成するには、2つのピラミッドを結合します。

n = 5
for i in range(1, n + 1):
    print(' ' * (n - i) + '*' * (2 * i - 1) + ' ' * (2 * (n - i)) + '*' * (2 * i - 1))

出力:

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

応用問題

以下の条件でピラミッドを作成してみましょう。

  • 高さ10のピラミッドを作る
  • 中央に「+」を含める
  • 偶数行は「#」、奇数行は「*」を使う
n = 10
for i in range(1, n + 1):
    char = '*' if i % 2 == 1 else '#'
    middle = '+' if i == (n // 2 + 1) else char
    print(' ' * (n - i) + char * (i - 1) + middle + char * (i - 1))

このように、for文を活用してさまざまなピラミッドを作成できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です