python:菱形程序下半部分反向输出?


# -*- coding:utf-8 -*-
import math
row = int( input() )
if row == 1:
    print("*", end = "" )
    exit()
if row % 2 == 0 :
    raise ValueError
row = math.ceil( row / 2.0  )
for n in range( 1, row + 1 ):
    i = 2 * n - 1   #每一行*的个数
    j = ( row  - n ) * 2    #每一行空格的个数
    for jj in range(j): #控制输出每一行的空格
        print( " ", end="" )
    if i > 1:   #如果一行字母*的个数大于1,则要控制*和*之间的空格格式然后输出
        for ii in range(i):
            if ii != i - 1:
                print("* ", end="" )
            else:
                print("*")
    else:   #如果一行的字母*的个数等于1,则直接输出*
        print("*")

# 输出完菱形的上半部分,下半部分直接通过反向控制输出
#********* Begin *********#

#********* End *********#
```python

就是把for循环整个复制一份
第一行改成从row-1 循环到 1,倒数循环
for n in range( row-1 ,0, -1 ):


# -*- coding:utf-8 -*-
import math
row = int( input() )
if row == 1:
    print("*", end = "" )
    exit()
if row % 2 == 0 :
    raise ValueError
row = math.ceil( row / 2.0  )
for n in range( 1, row + 1 ):
    i = 2 * n - 1   #每一行*的个数
    j = ( row  - n ) * 2    #每一行空格的个数
    for jj in range(j): #控制输出每一行的空格
        print( " ", end="" )
    if i > 1:   #如果一行字母*的个数大于1,则要控制*和*之间的空格格式然后输出
        for ii in range(i):
            if ii != i - 1:
                print("* ", end="" )
            else:
                print("*")
    else:   #如果一行的字母*的个数等于1,则直接输出*
        print("*")

# 输出完菱形的上半部分,下半部分直接通过反向控制输出
#********* Begin *********#
for n in range( row-1 ,0, -1 ):
    i = 2 * n - 1   #每一行*的个数
    j = ( row  - n ) * 2    #每一行空格的个数
    for jj in range(j): #控制输出每一行的空格
        print( " ", end="" )
    if i > 1:   #如果一行字母*的个数大于1,则要控制*和*之间的空格格式然后输出
        for ii in range(i):
            if ii != i - 1:
                print("* ", end="" )
            else:
                print("*")
    else:   #如果一行的字母*的个数等于1,则直接输出*
        print("*")


#********* End *********#

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

row = int(input(">>") )
if row == 1:
    print("*", end = "" )
    exit()
if row % 2 == 0 :
    raise ValueError
for i in range(row):
    if i <= row // 2 :
        nums = 2 * i + 1
    else:
        nums = 2 * (row - i) -1
    print(f"{'* ' *nums:^{row*2}}")