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

アルファベットを使用してランゴーリーパターンを印刷するPythonプログラム


数nがあるとします。 nxnサイズのアルファベットランゴーリーを作成する必要があります。 nは1から26の範囲内である必要があり、nが26の場合、aから始まり、zで終わります。

したがって、入力が5のような場合、出力は

になります。
--------e--------
------e-d-e------
----e-d-c-d-e----
--e-d-c-b-c-d-e--
e-d-c-b-a-b-c-d-e
--e-d-c-b-c-d-e--
----e-d-c-d-e----
------e-d-e------
--------e--------

これを解決するには、次の手順に従います-

  • n-1から0の範囲のiの場合、1ずつ減らします。
    • 0からi-1の範囲のjについては、
      • 「-」を印刷
    • n-1〜i + 1の範囲のjの場合、1ずつ減らします。
      • ASCIIがj+97の文字を印刷し、最後に余分な「-」を印刷します
    • iからn-1の範囲のjについては、
      • jがn-1と同じでない場合、
        • ASCIIがj+97の文字を印刷し、最後に余分な「-」を印刷します
      • それ以外の場合、
        • ASCIIがj+97の文字を印刷する
    • 0〜2 * i-1の範囲のjの場合、do
      • 最後に「-」を印刷
    • 次の行に進む
  • 1からn-1の範囲のiの場合、do
    • 0からiの範囲のjについては、
      • 「-」を印刷
    • n-1〜i + 1の範囲のjの場合、1ずつ減らします。
      • ASCIIがj+97の文字を印刷し、最後に余分な「-」を印刷します
    • iからn-1の範囲のjについては、
      • jがn-1と同じでない場合、
        • ASCIIがj+97の文字を印刷し、最後に余分な「-」を印刷します
      • それ以外の場合、
        • ASCIIがj+97の文字を印刷する
    • 0〜2 * i-1の範囲のjの場合、do
      • 最後に「-」を印刷
    • 次の行に移動

理解を深めるために、次の実装を見てみましょう

def solve(n):
   for i in range(n-1,-1,-1):
      for j in range(i):
         print(end="--")
      for j in range(n-1,i,-1):
         print(chr(j+97),end="-")
      for j in range(i,n):
         if j != n-1:
            print(chr(j+97),end="-")
         else:
            print(chr(j+97),end="")
      for j in range(2*i):
         print(end="-")
      print()
   for i in range(1,n):
      for j in range(i):
         print(end="--")
      for j in range(n-1,i,-1):
         print(chr(j+97),end="-")
      for j in range(i,n):
         if j != n-1:
            print(chr(j+97),end="-")
         else:
            print(chr(j+97),end="")
      for j in range(2*i):
         print(end="-")
   print()

n = 8
solve(n)

入力

8

出力

--------------h--------------
------------h-g-h------------
----------h-g-f-g-h----------
--------h-g-f-e-f-g-h--------
------h-g-f-e-d-e-f-g-h------
----h-g-f-e-d-c-d-e-f-g-h----
--h-g-f-e-d-c-b-c-d-e-f-g-h--
h-g-f-e-d-c-b-a-b-c-d-e-f-g-h
--h-g-f-e-d-c-b-c-d-e-f-g-h--
----h-g-f-e-d-c-d-e-f-g-h----
------h-g-f-e-d-e-f-g-h------
--------h-g-f-e-f-g-h--------
----------h-g-f-g-h----------
------------h-g-h------------
--------------h--------------

  1. Pythonでパターンを印刷する方法は?

    Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが

  2. Pythonプログラムでループを使用せずに数値シリーズを印刷する

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 2つの数NとKが与えられた場合、問題は、数(N)がゼロ(0)より大きくなるまでNから数Kを引くことです。次に、Nが負またはゼロになると、その数が元になるまでKを加算し始めます。番号(N)。 例 N = 10 K = 4 出力 10 6 2 -2 2 6 10 アルゴリズム Nがゼロより大きくなるまで関数を何度も呼び出します(すべての関数呼び出しで、NからKを減算します)。 数値が負またはゼロになると、数値が元の数値になるまで、各関数呼び出しでKを追加し始めます。 ここでは、加算と減算