第25634题 单选
以下Python代码实现打印指定图形,横线处应填入的代码是?

下面Python代码实现输出如下图形,应该在横线处填入的代码是()。 注:字符串乘以一个正整数,相当于相同字符重复。

样例输入:

请输入行数 n: 10
请输入列数 m: 12

样例输出:

-----**-----
-----**-----
-----**-----
-----**-----
************
************
-----**-----
-----**-----
-----**-----
-----**-----

对应代码:

# 输入行数 n 和列数 m
n = int(input("请输入行数 n: "))
m = int(input("请输入列数 m: "))

# 计算中间行和中间列的索引
mid_row = n // 2  # 中间行索引(如果 n 为奇数,则中间一行;如果 n 为偶数,则中间两行的起始索引)
mid_col = m // 2  # 中间列索引

# 遍历每一行
for i in range(n):
    # 判断当前行是否为中间行(或中间两行)
    if (_____________________________________________):
        # 如果是中间行,打印一整行 '*',长度为 m
        print('*' * m)
    else:
        # 如果不是中间行,根据列数 m 的奇偶性构建字符串
        if m % 2 == 1:
            # 奇数列:左侧为 '-',中间为 '*',右侧为 '-',总长度为 m
            left = '-' * mid_col        # 左侧有 mid_col 个 '-'
            center = '*'                # 中间一个 '*'
            right = '-' * mid_col       # 右侧有 mid_col 个 '-'
            print(left + center + right)
        else:
            # 偶数列:左侧为 '-',中间为 '**',右侧为 '-',总长度为 m
            left = '-' * (mid_col - 1)  # 左侧有 (mid_col - 1) 个 '-'
            center = '**'               # 中间两个 '*',修正原图中的错误
            right = '-' * (mid_col - 1) # 右侧有 (mid_col - 1) 个 '-'
            print(left + center + right)
A

(n % 2 == 1 and i == mid_row) or (n % 2 == 0 and (i == mid_row - 1 or i == mid_row))

B

(n % 2 == 0 and i == mid_row) or (n % 2 == 1 and (i == mid_row - 1 or i == mid_row))

C

(n % 2 == 1 and i == mid_row) or (n % 2 == 0 and (i == mid_row or i == mid_row + 1))

D

(n % 2 == 1 and i == mid_row) or (n % 2 == 0 and i == mid_row - 1) or (n % 2 == 0 and i == mid_row)

程序运行统计
暂无判题统计