You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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()

修改说明

  1. 调整第一个循环的范围为square_side,直接移除了冗余的重复行
  2. 新增repeat_count变量,让用户自定义图案重复次数,替代原代码中固定的7次
  3. 上半部分的图案重复次数与下半部分统一,保证整体图案协调
  4. 将输入提示改为中文,提升易用性

内容的提问来源于stack exchange,提问作者CALLEN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:30:42