Python自定义box函数如何实现输入y时的指定区域填充效果
代码调整方案
核心问题定位
- 原有
box函数未使用传入的filled_ft参数,输出逻辑完全固定,无法根据用户输入切换效果 box函数无返回值,测试代码中print(box1)会额外输出None- 之前尝试反转逻辑时未对X形坐标位置做条件区分,导致所有内部区域统一输出点
具体修改点
- 新增填充模式判断,根据
filled_ft的取值切换内部字符的输出规则- 填充模式(输入
y/yes):X形坐标位置输出空格,其余内部区域输出点 - 非填充模式(输入
n/no):保持原有逻辑,X形坐标位置输出点,其余内部区域输出空格
- 填充模式(输入
- 移除测试代码中多余的返回值接收与打印逻辑
- 优化填充选项的判断逻辑,兼容大小写输入
可直接运行的修改后代码
def box(box_size, filled_ft): is_filled = filled_ft.lower() in ("y", "yes") for i in range(0, box_size): for e in range(0, box_size): if (i == 0 or i == box_size - 1 or e == 0 or e == box_size - 1): print("#", end="") elif (i == e or i == box_size - 1 - e): print(" " if is_filled else ".", end="") else: print("." if is_filled else " ", end="") print("") # 测试输入逻辑 while True: box_size = int(input("Enter box size (> 2): ")) if box_size >= 2: break print("try again") while True: filled = input("Do you want it filled?: ") if filled.lower() in ("yes", "y", "n", "no"): break print("try again") # 直接调用函数输出结果 box(box_size, filled)
效果说明
- 输入符合要求的尺寸与填充选项时,输出效果与提供的示例完全匹配
- 边框规则保持不变,仅内部区域根据填充选项切换字符分布
内容的提问来源于stack exchange,提问作者Melissa Staryo
相关产品推荐
相关产品推荐

