如何从电缆载流量选型Excel表中提取所需参数?
电缆载流量查询程序实现方案
我来帮你搞定这个电缆载流量查询程序的需求~首先得把核心的载流量数据整理出来(根据你提供的表格内容),然后用代码实现查询逻辑就很简单了。
第一步:整理载流量数据
下面是结构化后的电缆载流量对照表(截面按从小到大排序,方便后续查询):
| 截面规格(mm²) | 安装方式1(A) | 安装方式2(A) | 安装方式3(A) | 安装方式4(A) |
|---|---|---|---|---|
| 1.5 | 13.5 | 12.0 | 10.5 | 9.0 |
| 2.5 | 19.0 | 17.0 | 14.5 | 12.0 |
| 4.0 | 26.0 | 23.0 | 19.5 | 16.0 |
| 6.0 | 34.0 | 30.0 | 25.5 | 21.0 |
| 10.0 | 48.0 | 42.0 | 36.0 | 30.0 |
| 16.0 | 65.0 | 57.0 | 49.0 | 40.0 |
| 25.0 | 88.0 | 77.0 | 66.0 | 54.0 |
| 35.0 | 110.0 | 97.0 | 83.0 | 68.0 |
| 50.0 | 138.0 | 121.0 | 104.0 | 85.0 |
| 70.0 | 182.0 | 160.0 | 137.0 | 112.0 |
| 95.0 | 228.0 | 200.0 | 171.0 | 140.0 |
| 120.0 | 265.0 | 233.0 | 199.0 | 163.0 |
| 150.0 | 305.0 | 268.0 | 229.0 | 187.0 |
| 185.0 | 350.0 | 308.0 | 263.0 | 215.0 |
| 240.0 | 415.0 | 364.0 | 311.0 | 254.0 |
第二步:Python实现查询程序
我写了一个简单易懂的Python实现,逻辑清晰,还加了输入校验和友好的输出提示:
# 结构化存储电缆载流量数据,键为安装方式编号,值为(截面, 载流量)的有序列表 cable_current_data = { 1: [(1.5, 13.5), (2.5, 19.0), (4.0, 26.0), (6.0, 34.0), (10.0, 48.0), (16.0, 65.0), (25.0, 88.0), (35.0, 110.0), (50.0, 138.0), (70.0, 182.0), (95.0, 228.0), (120.0, 265.0), (150.0, 305.0), (185.0, 350.0), (240.0, 415.0)], 2: [(1.5, 12.0), (2.5, 17.0), (4.0, 23.0), (6.0, 30.0), (10.0, 42.0), (16.0, 57.0), (25.0, 77.0), (35.0, 97.0), (50.0, 121.0), (70.0, 160.0), (95.0, 200.0), (120.0, 233.0), (150.0, 268.0), (185.0, 308.0), (240.0, 364.0)], 3: [(1.5, 10.5), (2.5, 14.5), (4.0, 19.5), (6.0, 25.5), (10.0, 36.0), (16.0, 49.0), (25.0, 66.0), (35.0, 83.0), (50.0, 104.0), (70.0, 137.0), (95.0, 171.0), (120.0, 199.0), (150.0, 229.0), (185.0, 263.0), (240.0, 311.0)], 4: [(1.5, 9.0), (2.5, 12.0), (4.0, 16.0), (6.0, 21.0), (10.0, 30.0), (16.0, 40.0), (25.0, 54.0), (35.0, 68.0), (50.0, 85.0), (70.0, 112.0), (95.0, 140.0), (120.0, 163.0), (150.0, 187.0), (185.0, 215.0), (240.0, 254.0)] } def get_min_cable(min_required_current, install_mode): # 校验安装方式是否合法 if install_mode not in cable_current_data: return "⚠️ 错误:安装方式只能是1-4之间的整数" # 获取对应安装方式的电缆列表(已按截面从小到大排序) cable_list = cable_current_data[install_mode] # 遍历找到第一个满足载流量要求的最小截面电缆 for section, current in cable_list: if current >= min_required_current: return f"✅ 满足要求的最小电缆:{current}A、{section}mm²" # 所有电缆都不满足的情况 return "⚠️ 错误:没有找到能满足载流量要求的电缆" # 测试示例:输入11A、安装方式1 print(get_min_cable(11, 1)) # 输出:✅ 满足要求的最小电缆:13.5A、1.5mm²
关键逻辑说明
- 数据已经按截面从小到大排序,所以遍历的时候第一个符合条件的就是最小截面,不用再做额外排序。
- 加入了安装方式的合法性校验,避免无效输入导致的错误。
- 输出结果带状态标识,用户一眼就能看懂是否成功查询到结果。
额外提示
- 如果实际工程中载流量数据有更新,直接修改
cable_current_data里的数值即可。 - 可以扩展功能,比如支持将字符串类型的载流量输入自动转换为数值,或者添加更多错误处理(比如载流量为负数的情况)。
- 如果需要集成到其他系统,这个函数可以直接调用,返回结果也可以根据需求调整格式(比如返回字典而非字符串)。
内容的提问来源于stack exchange,提问作者user127515




