【python】 `parse_time_to_seconds` 在功能及健壮性上有以下主要区别
这两版 parse_time_to_seconds 在功能及健壮性上有以下主要区别:
| 特性 | 版本 A(第一段代码) | 版本 B(第二段代码) |
|---|---|---|
| 类型转换 | 只做 time_str.strip(),要求传入已是字符串,否则会在 .strip() 报错。 | 先做 str(time_str).strip(),任何类型都能转换为字符串,更宽容。 |
| 支持格式 |
MM:SS.ddHH:MM:SS.dd- 纯秒数
SS.dd或SS
| MM:SS.dd(不区分两位或一位分钟)- 纯秒数
SS.dd或SS
|
| 小时处理 | 支持HH:MM:SS.dd(三段式);超过两段会按小时—分钟—秒计算。 | 不支持三段式;只拆两段,遇到三段式会直接抛IndexError并返回 0。 |
| 空/特殊输入 |if not time_str or time_str=='0'同样跳过。 | 同上。 |
| 出错提示 |print(f"⚠️ 时间解析错误: '{time_str}' -> {e}")|print(f"⚠️ 时间解析失败: '{time_str}' -> {e}")|
| 代码简洁度 | 分支更多,兼容性更强,但更冗长。 | 简洁扼要,只处理最常见的两种格式。 |
| 边界情况 |
"1:02"(1 分 2 秒)"1:02.5"(1 分 2.5 秒)"01:02:03.45"(1 小时 2 分 3.45 秒)
|"1:02"与"1:02.5"同样正确"01:02:03.45"会被当成两段式,parts[1]="02",忽略后面的03.45,并触发后续的IndexError。 |
何时选择?
- 如果你需要 兼容“小时” 格式,或者要非常严格区分输入格式,就用版本 A;
- 如果你只关心“分:秒” 和“纯秒数”,而且想让任何类型的输入都能平滑转换,就用版本 B。
代码对比

