如何使用Python实现任意奇数输入的指定空心金字塔图案绘制
空心金字塔图案通用打印方案
实现逻辑
从输入输出样例可以提取通用坐标规则,替代硬编码逻辑:
- 合法输入为奇数
num,图案总行数为(num + 1) // 2 - 每行总字符数为
2 * num - 1,行中间位置的0起始索引为num - 1 - 第
row行(0起始)的*分别出现在(num - 1) - 2*row和(num - 1) + 2*row两个位置,首行两个位置重合,仅显示1个*
完整代码
num = int(input()) # 输入合法性校验 if num % 2 == 0: print("仅支持奇数输入") else: total_cols = 2 * num - 1 mid_index = num - 1 total_rows = (num + 1) // 2 for row in range(total_rows): left_star = mid_index - 2 * row right_star = mid_index + 2 * row for col in range(total_cols): if col == left_star or col == right_star: print('*', end='') else: print(' ', end='') print()
逻辑说明
- 先校验输入是否为奇数,不符合要求直接给出提示
- 外层循环控制打印行数,仅打印有效图案行,避免输出多余空行
- 内层循环遍历当前行的每一列,匹配到
*的坐标则打印*,否则打印空格占位
内容的提问来源于stack exchange,提问作者Anony
相关产品推荐
相关产品推荐

