Python阶梯状重复图案生成问题:移除冗余图案区域
移除阶梯状图案代码中的冗余区域
我想要编写代码生成一种可重复任意次数的特定阶梯状图案,使其在屏幕上重复排列,具体需求如下:
- 运行程序时接收用户输入变量
- 初始化生成图案所需的变量
- 打印图案名称
- 设置范围上限为用户输入变量的2倍
- 处理间距与重复逻辑
- 打印图案
现有代码生成的图案存在红色圈出的冗余部分,需修改代码移除该部分。
现有代码
# Python Program to Print Square Step Pattern square_side = int(input("Please enter the square Step dimension : ")) square_base = int(input("Please enter the square base dimension : ")) print("Square AlphaBet Step Pattern") max_side = square_side*2 for i in range(max_side): if i % 2 == 0: letter = " _" else: letter = " |" print(" "*(max_side-i-1) + letter*3) for i in range(square_side): for j in range(7): print('{}{}{}'.format(2*(square_base-i)*' ','_|', 2*(i+1)*' '),end='') print()
问题分析
原代码第一个循环执行了square_side*2次,生成了多余的下半部分内容,这就是需要移除的冗余区域;同时下半部分固定重复7次的逻辑也不符合“可重复任意次数”的需求。
修改后的代码
# Python Program to Print Square Step Pattern # 接收用户输入:阶梯尺寸、基础尺寸、图案重复次数 square_side = int(input("请输入阶梯尺寸:")) square_base = int(input("请输入基础尺寸:")) repeat_count = int(input("请输入图案重复次数:")) print("方形阶梯图案") max_side = square_side # 生成图案上半部分,移除冗余行 for i in range(max_side): if i % 2 == 0: letter = " _" else: letter = " |" # 上半部分重复次数与下半部分保持一致 print(" "*(max_side-i-1) + letter*repeat_count) # 生成图案下半部分,使用用户指定的重复次数 for i in range(square_side): for j in range(repeat_count): print('{}{}{}'.format(2*(square_base-i)*' ','_|', 2*(i+1)*' '), end='') print()
修改说明
- 调整第一个循环的范围为
square_side,直接移除了冗余的重复行 - 新增
repeat_count变量,让用户自定义图案重复次数,替代原代码中固定的7次 - 上半部分的图案重复次数与下半部分统一,保证整体图案协调
- 将输入提示改为中文,提升易用性
内容的提问来源于stack exchange,提问作者CALLEN
相关产品推荐
相关产品推荐

