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

如何将合规包裹信息追加至列表并实现指定次数循环运行?

解决方案

嘿,我来帮你搞定这两个问题!咱们一步步调整代码:

1. 实现对应包裹数量的循环结构

首先,咱们要把单个包裹的输入和校验逻辑放到循环里,循环次数就是用户输入的包裹总数。用for _ in range(number)就能轻松实现——这里的_是占位符变量,因为我们不需要用到循环计数,只是需要重复指定次数。我还加了包裹序号提示,让用户更清楚当前输入的是第几个包裹。

2. 追加合规包裹信息到对应列表

当包裹的尺寸和重量都符合规则时,直接用列表的append()方法,把当前包裹的宽、长、高、重量分别添加到对应的列表里就可以了。

另外我还优化了校验逻辑:原来的elif会导致只要第一个不符合项被检测到,后面的规则就不再检查,改成多个if可以一次性把所有不符合的问题都提示给用户(如果想保持原来“只要有一个错就停止检查”的逻辑,改回elif也完全没问题)。

下面是调整后的完整代码:

# 先初始化存储包裹信息的空列表
width_list = []
length_list = []
height_list = []
weight_list = []

# 获取用户要输入的包裹数量
number = int(input("Enter the number of parcels you want to input: "))

# 循环处理每个包裹的输入与校验
for parcel_idx in range(number):
    print(f"\n--- Input details for parcel {parcel_idx + 1} ---")
    width = int(input("Enter the width (cm) of the parcel: "))
    length = int(input("Enter the length (cm) of the parcel: "))
    height = int(input("Enter the height (cm) of the parcel: "))
    weight = int(input("Enter the weight (kg) of the parcel: "))
    
    # 标记包裹是否合规
    is_valid = True
    # 逐个校验规则,不符合就提示并标记为无效
    if not (1 <= width <= 80):
        print("Error: Only widths between 1-80 cm are acceptable")
        is_valid = False
    if not (1 <= length <= 80):
        print("Error: Only lengths between 1-80 cm are acceptable")
        is_valid = False
    if not (1 <= height <= 80):
        print("Error: Only heights between 1-80 cm are acceptable")
        is_valid = False
    if not (1 <= weight <= 10):
        print("Error: Only weights between 1-10 kg are allowed")
        is_valid = False
    
    # 如果包裹合规,就把数据追加到对应列表里
    if is_valid:
        print("Parcel is acceptable")
        width_list.append(width)
        length_list.append(length)
        height_list.append(height)
        weight_list.append(weight)

# 可选:打印存储的合规包裹信息,方便验证结果
print("\n--- Valid Parcel Details ---")
print(f"Widths of valid parcels: {width_list}")
print(f"Lengths of valid parcels: {length_list}")
print(f"Heights of valid parcels: {height_list}")
print(f"Weights of valid parcels: {weight_list}")

关键改动说明:

  • 把列表初始化移到最前面,避免每次循环重新创建空列表导致数据丢失
  • 用for parcel_idx in range(number)实现了对应数量的循环,同时通过parcel_idx + 1给用户展示包裹序号
  • 新增is_valid标志跟踪包裹状态,确保所有规则都被检查到
  • 在合规分支里调用append()方法,把符合要求的包裹数据存入对应列表
  • 最后添加了列表打印逻辑,方便你直观验证数据是否正确存储

这样就完美解决了你提到的两个问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:37:34