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

Python打印页数统计函数报错修复:ValueError问题解决

解决打印机页码统计函数的问题

问题分析

  • 原代码抛出ValueError: not enough values to unpack (expected 2, got 1),原因是直接拆分带-的字符串时,单个页码(比如"2")拆分后仅得到1个元素,无法解包为两个变量。
  • 未处理起始页大于结束页的场景(比如"18-12"),这类区间需要反转后再计算页数。

实现思路

  1. 将输入字符串按, 分割为多个独立的页码/区间片段。
  2. 遍历每个片段:
    • 若片段包含-,拆分出两个页码并转为整数,取最小值作为起始页、最大值作为结束页,计算该区间的页数(结束页 - 起始页 + 1)。
    • 若片段不包含-,直接视为单个页码,页数加1。
  3. 累加所有片段的页数,返回总和。

完整代码实现

def count_pages(p):
    total = 0
    # 拆分所有页码/区间项
    parts = p.split(', ')
    for part in parts:
        if '-' in part:
            # 处理区间,拆分后转换为整数
            start, end = map(int, part.split('-'))
            # 修正倒序区间的起始和结束页
            actual_start = min(start, end)
            actual_end = max(start, end)
            total += actual_end - actual_start + 1
        else:
            # 处理单个页码
            total += 1
    return total

# 测试用例验证
print(count_pages("5-7, 2"))  # 输出4
print(count_pages("12-18, 20-20"))  # 输出8
print(count_pages("18-12, 20-20, 5-6"))  # 输出10

代码说明

  • split(', '):将输入字符串拆分为独立的页码项,例如"5-7, 2"会拆分为["5-7", "2"]。
  • 针对含-的项,用min和max处理倒序区间,确保起始页始终小于等于结束页,区间页数计算包含两端页码(所以加1)。
  • 不含-的项直接计数加1,对应单个页码的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 02:04:54