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

Python实现实心矩形打印:循环范围定义问题求助

解决实心矩形打印的循环范围问题

你的代码有三个关键问题,逐个修正就能实现需求:

1. 输入未转换为整数

input()函数返回的是字符串类型,直接传给range()会报错,必须先转成整数:

w = int(input("Enter the width of a frame: "))
h = int(input("Enter the height of a frame: "))

2. 循环嵌套顺序搞反

要打印高度为h、宽度为w的矩形,外层循环控制行数(高度h),内层循环控制每行的字符数(宽度w),原代码的循环顺序写反了,导致行和列颠倒。

3. 缺少换行逻辑

内层循环打印完一行的所有字符后,需要执行print()来换行,否则所有字符会挤在同一行。

修正后的完整代码

def print_box(w, h, m):
    """print filled box"""
    # 外层循环:打印h行(对应高度)
    for i in range(h):
        # 内层循环:每行打印w个填充字符(对应宽度)
        for j in range(w):
            print(m, end="")
        # 每行结束后换行
        print()
        
def main():
    # 输入转整数
    w = int(input("Enter the width of a frame: "))
    h = int(input("Enter the height of a frame: "))
    m = input("Enter a print mark: ")

    print()
    print_box(w, h, m)

# 调用主函数
if __name__ == "__main__":
    main()

关键逻辑说明

  • 外层range(h):循环h次,每次代表打印一行
  • 内层range(w):每次循环打印w个填充字符,end=""让字符不自动换行
  • 内层循环结束后的print():手动换行,开启下一行的打印

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:36:30