Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例

Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。

パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。

パターン出力の基本

これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。

ここからは、代表的なパターンのコードを実際に実装してみましょう。

三角形(Triangle)の出力

def triangle(n):
    k = n - 1
    for i in range(1, n + 1):
        for j in range(k):
            print(' ', end='')
        k = k - 1
        for p in range(i):
            print('*', end=' ')
        print()

print('行数を入力してください')
r = int(input())
triangle(r)

出力結果

行数を入力してください
5
*
* *
* * *
* * * *
* * * * *

このコードでは、変数kで先頭に出力する空白の数を管理しています。行が進むごとにkを1ずつ減らすことで、星が右側に寄った三角形が形成されます。

行数の値を変えて実行すれば、好きな大きさの三角形を出力できます。

数字パターンの出力

def num_pattern(n):
    num = 1
    for i in range(1, n + 1):
        for j in range(i):
            print(num, end=' ')
            num += 1
        print()

print('行数を入力してください')
r = int(input())
num_pattern(r)

出力結果

行数を入力してください
5
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

このパターンでは、変数numを1から順にインクリメントしながら出力します。内側のループはi回繰り返されるため、i行目にはi個の連続した数字が表示され、全体として連番が階段状に並びます。

アルファベットパターンの出力

def alpha_pattern(n):
    st = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    for i in range(1, n + 1):
        for j in range(i):
            print(st[j], end=' ')
        print()

print('行数を入力してください')
r = int(input())
alpha_pattern(r)

出力結果

行数を入力してください
5
A
A B
A B C
A B C D
A B C D E

アルファベット「A」から始まる文字列を用意し、各行でその先頭からi文字分を出力しています。これにより、Aから順に増えていくアルファベットの三角形が完成します。

ピラミッド(180度回転)の出力

def pyramid(n):
    k = n - 1
    for i in range(1, n + 1):
        for j in range(k):
            print(' ', end='')
        for p in range(i):
            print('*', end=' ')
        k = k - 1
        print()

print('行数を入力してください')
r = int(input())
pyramid(r)

出力結果

行数を入力してください
5
*
* *
* * *
* * * *
* * * * *

この関数は三角形の出力とほぼ同じロジックですが、空白の数を減らすタイミングが異なります。空白と星のバランスを調整することで、見た目の異なるピラミッド形状を作れます。

上記のコードはIDEやターミナルで実際に実行すると、パターンが正しく整形されて表示されます。ぜひ行数を変更しながら、いろいろなパターンの生成を試してみてください。

  1. PythonでIndexError例外をキャッチする方法をわかりやすく解説

    Pythonでは、リストやタプルなどのシーケンス型の要素に、存在しない範囲のインデックスでアクセスしようとすると、IndexError例外が発生します。この例外はtry〜except文を使うことで適切に捕捉(キャッチ)でき、プログラムが異常終了するのを防ぐことができます。IndexErrorが発生する例以下のコードは、5つの要素しか持たないリストに対して、インデックス6(7番目の要素)にアクセスしようとしているため、IndexErrorが発生します。my_list = [3, 7, 9, 4, 6] print(my_list[6])try〜exceptでIndexErrorをキャッチする方法

  2. PythonでIOError例外をキャッチする方法【初心者向けにわかりやすく解説】

    IOError例外とは? IOError(入出力エラー)は、入出力操作が失敗したときに発生する例外です。代表的な例としては、存在しないファイルをopen()関数で開こうとした場合や、OSに関連するエラーが発生した場合などが挙げられます。 なお、Python 3ではIOErrorはOSErrorの別名(エイリアス)となっており、どちらの名前で捕捉しても同じ例外を受け取ることができます。 try-exceptブロックで例外を処理する ファイルを開く処理などをtryブロック内に記述すると、入出力例外が発生した際にexceptブロックで適切に処理できます。以下に具体的なコード例を示します。 コード例(