Printing Simple Diamond Pattern in Python
<p>I would like to print the following pattern in Python 3.5 (I'm new to coding): </p>

<pre><code>    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
</code></pre>

<p>But I only know how to print the following using the code below, but not sure how to invert it to make it a complete diamond:</p>

<pre><code>n = 5

print("Pattern 1")

for a1 in range (0,n):
    for a2 in range (a1):
        print("*", end="")
    print()

for a1 in range (n,0,-1):
    for a2 in range (a1):
        print("*", end="")
    print()

*
**
***
****
*****
****
***
**
*
</code></pre>

<p>Any help would be appreciated!</p>

<p>Since the middle and largest row of stars has 9 stars, you should make <code>n</code> equal to 9. You were able to print out half of the diamond, but now you have to try to make a function that prints a specific number of spaces, then a specific number of stars. So try to develop a pattern with the number of spaces and stars in each row,</p>

<pre><code>Row1: 4 spaces, 1 star, 4 spaces
Row2: 3 spaces, 3 stars, 3 spaces
Row3: 2 spaces, 5 stars, 2 spaces
Row4: 1 space, 7 stars, 1 space
Row5: 0 spaces, 9 stars, 0 spaces
Row6: 1 space, 7 stars, 1 space
Row7: 2 spaces, 5 stars, 2 spaces
Row8: 3 spaces, 3 stars, 3 spaces
Row9: 4 spaces, 1 star, 4 spaces
</code></pre>

<p>So what can you deduce? From row 1 to (n+1)/2, the number of spaces decreases as the number of stars increase. So from 1 to 5, the <code># of stars</code> = (<code>row number</code> * 2) - 1, while <code># of spaces before stars</code> = 5 - <code>row number</code>. </p>

<p>Now from row (n+1)/2 + 1 to row 9, the number of spaces increase while the number of stars decrease. So from 6 to n, the <code># of stars</code> = ((n+1 - <code>row number</code>) * 2) - 1, while <code># of spaces before stars</code> = <code>row number</code> - 5.</p>

<p>From this information, you should be able to make a program that looks like this,</p>

<pre><code>n = 9
print("Pattern 1")
for a1 in range(1, (n+1)//2 + 1): #from row 1 to 5
    for a2 in range((n+1)//2 - a1):
        print(" ", end = "")
    for a3 in range((a1*2)-1):
        print("*", end = "")
    print()

for a1 in range((n+1)//2 + 1, n + 1): #from row 6 to 9
    for a2 in range(a1 - (n+1)//2):
        print(" ", end = "")
    for a3 in range((n+1 - a1)*2 - 1):
        print("*", end = "")
    print()
</code></pre>

<p>Note that you can replace n with any odd number to create a perfect diamond of that many lines.</p>

python