Python

【Python】アスタリスク(*)で四角形を描画する


プログラミング初心者向けの練習問題として「アスタリスク(*)を羅列して図形を描画する」というものがあります。

本記事では、アスタリスクで四角形を描画する方法について解説します。

実際にプログラムを作成してみる

早速ですが、実際にプログラムを作成していきます。

プログラム作成の手順

プログラム作成の手順は以下の通りです。

  1. 描画する四角形の幅width、高さheightを入力させる
  2. widthの値と同じ個数のアスタリスクと改行コードを表示する
  3. 2の手順をheightの値と同じ回数繰り返す

実装例

上記の手順に従ってプログラムを作成します。使用する言語はPythonです。

if __name__ == '__main__':

    print('四角形の幅を指定して下さい:')
    width = int(input())

    print('四角形の高さを指定して下さい:')
    height = int(input())

    figure = ''
    for h in range(height):
        for w in range(width):
            figure += '*'
        figure += '\n'

    print(figure)

このプログラムを実行すると以下の出力結果が得られます。

四角形の幅を指定して下さい:
5
四角形の高さを指定して下さい:
4
*****
*****
*****
*****

応用:ひし形の描画

上記では正方形、又は長方形を描画するプログラムについて紹介しましたが、そのやり方を少し工夫すればひし形を描画することも可能です。

ここでは、その方法について説明します。

プログラム作成の手順

プログラム作成の手順は以下の通りです。

  1. 描画するひし形の幅width、高さheightを入力させる
  2. スペース + アスタリスク(widthと同じ個数)を表示する
  3. スペースの個数を変えながら2をheightの値だけ繰り返す

実装例 その1

上記の手順に従ってプログラムを作成します。

if __name__ == '__main__':

    print('四角形の幅を指定して下さい:')
    width = int(input())

    print('四角形の高さを指定して下さい:')
    height = int(input())

    space = height - 1

    figure = ''
    for h in range(height):
        for s in range(space):
            figure += ' '
        for w in range(width):
            figure += '*'
        figure += '\n'
        space -=1

    print(figure)

このプログラムを実行すると以下の出力結果が得られます。

四角形の幅を指定して下さい:
5
四角形の高さを指定して下さい:
4
   *****
  *****
 *****
*****

実装例 その2

上記の手順に従ってプログラムを作成します。

if __name__ == '__main__':

    print('四角形の幅を指定して下さい:')
    width = int(input())

    print('四角形の高さを指定して下さい:')
    height = int(input())

    space = 0

    figure = ''
    for h in range(height):
        for s in range(space):
            figure += ' '
        for w in range(width):
            figure += '*'
        figure += '\n'
        space +=1

    print(figure)

このプログラムを実行すると以下の出力結果が得られます。

四角形の幅を指定して下さい:
5
四角形の高さを指定して下さい:
4
*****
 *****
  *****
   *****