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

Python新手求助:生成1-5长宽高所有组合的体积表格

解决思路与代码实现

要生成1到5所有长、宽、高组合的长方体体积表格,核心是要遍历所有可能的三维组合(笛卡尔积),你之前的方法没找对遍历组合的方式,下面是具体解决方案:

为什么你的两种方法不行

  • 直接用range相乘:range是可迭代对象,不支持乘法运算,自然触发TypeError,这不是遍历组合的正确方式。
  • 使用zip:zip只会把多个可迭代对象的对应位置元素配对,只能得到(1,1,1)、(2,2,2)...这类同位置组合,无法覆盖所有5×5×5=125种可能。

正确实现方法

方法1:嵌套循环(新手友好,直观易懂)

通过三层嵌套for循环,依次遍历长、宽、高的所有取值,计算每个组合的体积并打印表格:

# 定义长、宽、高的取值范围(1到5,range左闭右开所以写1到6)
dim_range = range(1, 6)

# 打印表格表头与分隔线
print("长 | 宽 | 高 | 体积")
print("-" * 20)

# 三层循环遍历所有组合
for length in dim_range:
    for width in dim_range:
        for height in dim_range:
            volume = length * width * height
            # 格式化输出,确保列对齐
            print(f"{length:2d} | {width:2d} | {height:2d} | {volume:3d}")

方法2:使用itertools.product(简洁高效)

Python标准库itertools里的product函数专门用来生成笛卡尔积,能一次性输出所有组合,代码更简洁:

import itertools

dim_range = range(1, 6)

print("长 | 宽 | 高 | 体积")
print("-" * 20)

# 生成所有三维组合,repeat=3表示对同一个范围取3次组合
for length, width, height in itertools.product(dim_range, repeat=3):
    volume = length * width * height
    print(f"{length:2d} | {width:2d} | {height:2d} | {volume:3d}")

说明

  • range(1,6):因为Python的range是左闭右开区间,要包含5必须把结束值设为6。
  • 格式化字符串{:2d}、{:3d}:确保每个列的内容对齐,让表格更美观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:52:44