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