当前位置: 首页 > news >正文

【python】 `parse_time_to_seconds` 在功能及健壮性上有以下主要区别

这两版 parse_time_to_seconds 在功能及健壮性上有以下主要区别:

特性版本 A(第一段代码)版本 B(第二段代码)
类型转换只做 time_str.strip(),要求传入已是字符串,否则会在 .strip() 报错。先做 str(time_str).strip(),任何类型都能转换为字符串,更宽容。
支持格式
  1. MM:SS.dd
  2. HH:MM:SS.dd
  3. 纯秒数 SS.ddSS
    |
  4. MM:SS.dd(不区分两位或一位分钟)
  5. 纯秒数 SS.ddSS
    |
    | 小时处理 | 支持 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

代码对比

在这里插入图片描述

http://www.dtcms.com/a/269730.html

相关文章:

  • ​扣子Coze飞书多维表插件添加数据记录
  • 【UE5】虚幻引擎小百科
  • std::function
  • coze平台AI Agent开发入门之工作流的基本使用方法
  • Redis 缓存机制 及问题场景 及解决方案
  • 接口自动化工具-SoapUI
  • kotlin
  • Ubuntu22.04下微星B850M主板 无wifi模块
  • AR 双缝干涉实验亮相:创新科技实验范式,开拓 AR 技术新局​
  • 传输层协议TCP、UDP
  • SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:整体布局、架构调整(二)
  • 基于FPGA的累加算法实现
  • 2. 两数相加
  • 从零实现一个GPT 【React + Express】--- 【1】初始化前后端项目,实现模型接入+SSE
  • 领域驱动设计(DDD)重塑金融系统架构
  • Qt 与Halcon联合开发九:算法类设计与实现讲解(附源码)
  • AlphaEvolve:谷歌的算法进化引擎 | 从数学证明到芯片设计的AI自主发现新纪元
  • 告别“电量焦虑”,BLE如何提升可穿戴设备续航能力?
  • Flutter基础(前端教程④-组件拼接)
  • Linux NUMA调优实战:多线程程序加速方法
  • 电路研究9.3.10——合宙Air780EP中的AT开发指南:阿里云应用指南
  • Deepoc大模型:重构无人机认知边界的具身智能革命
  • 华为泰山服务器重启后出现 XFS 文件系统磁盘“不识别”(无法挂载或访问),但挂载点目录仍在且无数据
  • WPA2 与 WPA3:深入解析Wi-Fi安全协议
  • Linux网络:UDP socket创建流程与简单通信
  • 手机能用酒精擦吗?
  • 前端学习3--position定位(relative+absolute+sticky)
  • Android kotlin 协程的详细使用指南
  • SpringBoot校园外卖服务系统设计与实现源码
  • EXCEL链接模板无法自动链接到PowerBI?试试这个方法