为何会触发ValueError: too many values to unpack (expected 3)错误?
错误原因分析
核心问题:返回值与接收变量数量不匹配
你的convert_seconds函数返回了4个值:hours, minutes, seconds, remaining_seconds,但你只用hours, minutes, seconds这3个变量接收返回结果。Python解包元组时要求两边数量完全对应,因此抛出ValueError: too many values to unpack (expected 3)。
额外问题:返回值冗余
函数里返回的seconds是传入的原始参数,属于不必要的冗余返回。你实际需要的是拆分后的小时、分钟、剩余秒数,所以函数返回值应该修正为仅包含这三个有效结果。
修正后的完整代码
def convert_seconds(seconds): hours = seconds // 3600 minutes = (seconds - hours * 3600) // 60 remaining_seconds = seconds - hours * 3600 - minutes * 60 return hours, minutes, remaining_seconds # 用三个变量接收三个返回值,变量名也可以根据语义调整为hours, minutes, remaining_seconds hours, minutes, seconds = convert_seconds(5000)
内容的提问来源于stack exchange,提问作者Osckiie
相关产品推荐
相关产品推荐

