上半部分
for i in range(n // 2 + 1):这个循环从0到n // 2(包括n // 2),表示上半部分的行数。
' ' * i + '' * (n - 2 * i):每一行的空格数是i,星号数是n - 2 * i。
下半部分
for i in range(n // 2):这个循环从0到n // 2 - 1,表示下半部分的行数。
' ' * (n // 2 - 1 - i) + '' * (2 * (i + 1) + 1):每一行的空格数是n // 2 - 1 - i,星号数是2 * (i + 1) + 1。
详细解释下半部分的逻辑
n // 2 - 1 - i:计算每一行的空格数。随着i的增加,空格数逐渐减少。
2 * (i + 1) + 1:计算每一行的星号数。随着i的增加,星号数逐渐增加。