Jump To Right Section
Show
This article will review different ways to generate pyramids and patterns in Python.
Half pyramid of asterisks
1 2 3 4 5 6 7 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">half_pyramid</span>(<span class="hljs-params">rows</span>):</span> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(rows): print(<span class="hljs-string">'*'</span> * (i+<span class="hljs-number">1</span>)) half_pyramid(<span class="hljs-number">6</span>) |
Output
1 2 3 4 5 6 7 8 |
* ** *** **** ***** ****** |
An alternate way to generate half pyramid using nested loops in Python.
Program
1 2 3 4 5 6 7 8 9 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">half_pyramid</span>(<span class="hljs-params">rows</span>):</span> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(rows): <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> range(i+<span class="hljs-number">1</span>): print(<span class="hljs-string">"*"</span>, end=<span class="hljs-string">""</span>) print(<span class="hljs-string">""</span>) half_pyramid(<span class="hljs-number">6</span>) |
Output
1 2 3 4 5 6 7 8 |
* ** *** **** ***** ****** |
Half pyramid of X’s
1 2 3 4 5 6 7 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">half_pyramid</span>(<span class="hljs-params">rows</span>):</span> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(rows): print(<span class="hljs-string">'X'</span> * (i+<span class="hljs-number">1</span>)) half_pyramid(<span class="hljs-number">6</span>) |
Output
1 2 3 4 5 6 7 8 |
X XX XXX XXXX XXXXX XXXXXX |
Half pyramid of numbers
1 2 3 4 5 6 7 8 9 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">half_pyramid</span>(<span class="hljs-params">rows</span>):</span> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(rows): <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> range(i + <span class="hljs-number">1</span>): print(j + <span class="hljs-number">1</span>, end=<span class="hljs-string">""</span>) print(<span class="hljs-string">""</span>) half_pyramid(<span class="hljs-number">5</span>) |
Output
1 2 3 4 5 6 7 8 |
<span class="hljs-number">1</span> <span class="hljs-number">12</span> <span class="hljs-number">123</span> <span class="hljs-number">1234</span> <span class="hljs-number">12345</span> |
Generating a full pyramid of asterisks
1 2 3 4 5 6 7 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">full_pyramid</span>(<span class="hljs-params">rows</span>):</span> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(rows): print(<span class="hljs-string">' '</span>*(rows-i<span class="hljs-number">-1</span>) + <span class="hljs-string">'*'</span>*(<span class="hljs-number">2</span>*i+<span class="hljs-number">1</span>)) full_pyramid(<span class="hljs-number">6</span>) |
Output
1 2 3 4 5 6 7 8 |
* *** ***** ******* ********* *********** |
Full pyramid of X’s
1 2 3 4 5 6 7 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">full_pyramid</span>(<span class="hljs-params">rows</span>):</span> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(rows): print(<span class="hljs-string">' '</span>*(rows-i<span class="hljs-number">-1</span>) + <span class="hljs-string">'X'</span>*(<span class="hljs-number">2</span>*i+<span class="hljs-number">1</span>)) full_pyramid(<span class="hljs-number">6</span>) |
Output
1 2 3 4 5 6 7 8 |
X XXX XXXXX XXXXXXX XXXXXXXXX XXXXXXXXXXX |
Reversed pyramid
1 2 3 4 5 6 7 |
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">inverted_pyramid</span>(<span class="hljs-params">rows</span>):</span> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> reversed(range(rows)): print(<span class="hljs-string">' '</span>*(rows-i<span class="hljs-number">-1</span>) + <span class="hljs-string">'*'</span>*(<span class="hljs-number">2</span>*i+<span class="hljs-number">1</span>)) inverted_pyramid(<span class="hljs-number">6</span>) |
Output
1 2 3 4 5 6 7 8 |
*********** ********* ******* ***** *** * |
Leave a Comment