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

Python中TypeError: 'int' object is not subscriptable错误解决咨询

修复信用卡号隐藏函数的整数下标错误

原代码:

def get_hidden_card(credit_number, star_count=4):
    short_credit_number = str(credit_number[12:16])
    return str('*' * star_count + short_credit_number)

print(get_hidden_card(2034399002125581))

运行报错:

Traceback (most recent call last):
  File "C:\Users\Ivan\PycharmProjects\pythonProject\main.py", line 10, in <module>
    print(get_hidden_card(2034399002125581))
  File "C:\Users\Ivan\PycharmProjects\pythonProject\main.py", line 4, in get_hidden_card
    short_credit_number = str(credit_number[12:16])
TypeError: 'int' object is not subscriptable

修复方案

核心问题是整数类型不支持下标切片操作,必须先把整数转为字符串再处理,同时优化切片逻辑让代码更健壮:

def get_hidden_card(credit_number, star_count=4):
    # 先将整数转为字符串
    credit_str = str(credit_number)
    # 截取卡号最后4位,用[-4:]适配不同长度的卡号(比如15位/16位)
    last_four_digits = credit_str[-4:]
    # 直接拼接星号与最后四位,返回字符串结果
    return '*' * star_count + last_four_digits

print(get_hidden_card(2034399002125581))

关键修改说明:

  • 先转换类型再切片:把credit_number转为字符串后,才能正常使用下标操作
  • 切片逻辑优化:[-4:]可以兼容不同长度的信用卡号,比固定的[12:16]适用性更强
  • 简化返回值:星号与字符串拼接后本身就是字符串类型,无需额外套str()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:10:26