【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文を活用してさまざまなピラミッドを作成できます。