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

提取年份最后两位遇TypeError错误:代码问题求助

解决取年份最后两位的TypeError问题

嘿,我来帮你梳理下问题出在哪,以及怎么搞定它!

你遇到的两个错误都是因为对Python的索引/切片规则和数据类型的理解有点小偏差:

第一个错误:str(year)[2,3]报TypeError: string indices must be integers

Python里字符串的切片语法是用**冒号:**来分隔起始和结束位置,而不是逗号,。逗号是用来访问元组、字典这类结构的键的,你写成[2,3]会被当成用元组作为索引,自然就报错啦。

第二个错误:year[2,3]报TypeError: 'int' object is not subscriptable

year是整数类型,整数本身不支持下标访问(就像你不能直接从一个数字里“抠出”某几位),必须先把它转换成字符串,或者用数学方法提取最后两位。

正确的解决方法有两种:

方法1:字符串切片(适合需要字符串结果的场景)

把年份转成字符串后,用切片取最后两位,推荐用[-2:]的写法,不管年份是3位还是4位都能正确取到最后两位:

year = 2024
p = str(year)[-2:]  # 结果是'24'
# 如果确定年份是4位,也可以写str(year)[2:4],但[-2:]更通用

方法2:数学运算(适合需要数字结果的场景)

如果只需要最后两位的数字,不用转字符串,直接对年份取模100就行:

year = 2024
p = year % 100  # 结果是24(整数类型)
# 如果需要字符串,再转一下:str(p)

很高兴你已经根据回答解决问题并完成代码啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:26:08