Python中使用数学运算符修改子串值 解决时间转换赋值语法错误
报错原因
Python 中赋值语句的左侧必须是可接收赋值的变量、容器元素等可写对象,不能是函数调用返回的临时值。
你代码中nt(time_input[:2]) = int(time_input[:2]) - 12的等号左侧是nt()(大概率是int()的笔误)函数的调用结果,属于不可写的临时值,因此触发该语法错误。另外字符串本身是不可变类型,也无法直接修改其中的某一段内容。
修复实现
按照你的24小时制转12小时制的需求,完整可运行的实现如下:
- 第一步:提取时间中的小时、分钟部分
# 假设time_input是符合hh:mm格式的字符串,比如"13:45" hour = int(time_input[:2]) minute = time_input[3:]
- 第二步:处理小时转换和上下午标识
if hour >= 12: period = "pm" # 12点不需要减12,超过12再减 hour = hour - 12 if hour > 12 else hour else: period = "am" # 处理0点的特殊情况,0点对应12 am hour = 12 if hour == 0 else hour
- 第三步:格式化输出最终结果
# 补全小时的前导零,保证输出格式统一 time_12h = f"{hour:02d}:{minute} {period}"
边界场景验证
- 输入
00:05→ 输出12:05 am - 输入
12:30→ 输出12:30 pm - 输入
18:20→ 输出06:20 pm - 输入
09:15→ 输出09:15 am
内容的提问来源于stack exchange,提问作者Onur T
相关产品推荐
相关产品推荐

