为何代码报错TypeError: 'int' object is not subscriptable?附代码求助
问题原因与修复方案
问题解释
你把输入的两位数转换成了整数类型nmbr_1,但整数不属于可通过[索引]访问元素的序列类型——只有字符串、列表这类有序集合才能用下标取值,所以代码里写nmbr_1[0]、nmbr_1[1]会触发TypeError: 'int' object is not subscriptable错误。
两种修复方法
方法1:保留字符串形式拆分后转整数
先获取字符串格式的输入,通过索引取数位字符再转成整数相加:
nmbr_str = input("Enter a two digit number: ") a = int(nmbr_str[0]) b = int(nmbr_str[1]) print(a + b)
方法2:用数学运算拆分整数数位
通过整除和取余操作直接从整数中拆分出十位和个位:
nmbr_1 = int(input("Enter a two digit number: ")) a = nmbr_1 // 10 # 整除10得到十位数字 b = nmbr_1 % 10 # 取余10得到个位数字 print(a + b)
内容的提问来源于stack exchange,提问作者Hadi Attique
相关产品推荐
相关产品推荐

