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

Pythonのforループで数字を使った三角形パターンを作成する方法

Pythonでは、forループ(ネストした二重ループ)を組み合わせることで、数字を使ったさまざまな三角形パターンを簡単に出力できます。ここでは、基本となる3つのパターンをわかりやすく解説します。

基本の三角形:行ごとに1から数え直すパターン

最もシンプルな形は、各行で1から順に数字を出力するパターンです。外側のループが行数、内側のループがその行に表示する数字の個数を制御します。

for i in range(5):
    for j in range(i + 1):
        print(j + 1, end="")
    print("")

実行結果

1
12
123
1234
12345

ポイントは end="" の指定です。通常、print() は出力後に改行しますが、end="" を指定することで改行せずに同じ行へ続けて出力できます。内側のループが終わったタイミングで print("") を呼び、そこで初めて改行しています。

連番が続く三角形パターン

次に、1から始まる数字が行をまたいで連続して増えていくパターンです。変数 start を用意し、数字を1つ出力するたびにインクリメントします。

start = 1
for i in range(5):
    for j in range(i + 1):
        print(start, end=" ")
        start += 1
    print("")

実行結果

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

この例では end=" " としているため、数字の間に半角スペースが入ります。行ごとの数字の個数は i + 1 によって1、2、3…と増えていく仕組みです。

逆順の三角形パターン

大きな数字から小さな数字へと減っていくパターンも、開始値を変更し、デクリメントするだけで簡単に実現できます。

start = 15
for i in range(5):
    for j in range(i + 1):
        print(start, end=" ")
        start -= 1
    print("")

実行結果

15
14 13
12 11 10
9 8 7 6
5 4 3 2 1

まとめ

ネストしたforループによる三角形パターンの作成は、以下の要素を組み合わせるだけで自由にカスタマイズできます。

  • 外側のループ:行数を決める
  • 内側のループrange(i + 1) により、行番号に応じて表示する数字の個数を増やす
  • start変数:連番や逆順など、出力する数字の流れを制御する
  • end引数:区切り文字や改行のタイミングを調整する

この考え方を応用すれば、星印(*)を使ったピラミッドや、アルファベットを使ったパターンなど、さまざまな図形出力にも発展させられます。ぜひ試してみてください。

  1. PythonでPowerPointファイルを自動作成する方法!python-pptxの基本を徹底解説

    はじめに誰もが一度はPowerPointのプレゼンテーション資料を作成した経験があるのではないでしょうか。多くの場合、Microsoft PowerPointやGoogleスライドといったGUIツールを使うことが多いでしょう。しかし、ライセンスを持っていなかったり、インターネット環境にアクセスできなかったりすることもあります。あるいは、「プログラマーらしく」コードで自動生成したいと考える方もいるはずです。ご安心ください。そんなときこそPythonの出番です!この記事では、Pythonを使ってPowerPointファイルを作成し、コンテンツを追加する方法を解説します。それでは早速始めましょう!準

  2. ループを使わずに数列を出力するPythonプログラム|再帰とフラグで実現する方法

    本記事では、for文やwhile文などのループ構文を一切使わずに数列を表示するという問題の解法について解説します。問題の定義問題: 2つの数値 N と K が与えられます。まずNが0より大きい間はNからKを繰り返し引き、Nが0以下(ゼロまたは負)になったら、今度は逆にKを足していきます。そして値が元の数値Nに戻った時点で処理を終了します。実行例N = 10K = 4出力: 10 6 2 -2 2 6 10アルゴリズムNが0より大きい間、関数を再帰的に呼び出し続けます。各呼び出しのたびにNからKを減算します。数値が0以下になったら加算モードに切り替え、各呼び出しごとにKを加算します。元の数値Nに