元组列表返回None报错及车辆达标天数函数实现技术问询
搞定这个函数的报错与功能实现
首先说你遇到的无法从元组列表返回None的问题——这是因为你的代码逻辑不完整:当遍历完所有车辆记录但累计总数还没达到n时,函数没有明确的返回值,Python会默认返回None,这就是报错的根源。
再明确下你的核心需求:要实现days_to_reach_n_vehicles函数,接收元组列表vehicle_records和目标数值n,从第一天开始累加车辆数,只能用while循环,且仅保留一个return语句,最终返回累计数达标所需的天数。
符合要求的完整代码
def days_to_reach_n_vehicles(vehicle_records, n): """Returns number of days taken to reach or exceed a total of n vehicles""" cumulative_total = 0 num_days = 0 index = 0 # 循环继续的条件:还有未遍历的记录,且累计数未达标 while index < len(vehicle_records) and cumulative_total < n: cumulative_total += vehicle_records[index][1] index += 1 num_days += 1 # 不管是提前达标还是遍历完所有记录,统一返回天数 return num_days
关键逻辑说明
- 解决None返回问题:无论循环是因累计数达标终止,还是因遍历完所有记录终止,最后都会执行
return num_days,彻底避免了无返回值导致的报错。 - 满足限制条件:全程仅使用
while循环,且只有一个return语句,完全匹配你的要求。 - 逻辑高效清晰:每次循环处理单日车辆数,同步更新累计值、天数和索引,直到触发终止条件。
内容的提问来源于stack exchange,提问作者user9644895
相关产品推荐
相关产品推荐

