提取年份最后两位遇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
相关产品推荐
相关产品推荐

