为了账号安全,请及时绑定邮箱和手机立即绑定

为什么运行后会报错呢?请大神指教一下!

为什么运行后会报错呢?请大神指教一下!

BIG阳 2022-05-06 11:07:39
一段代码(截取):for anyNumber in lineBack:if anyNumber.isdigit() == False:anyNumber = int(anyNumber)print anyNumber,if anyNumber > 30000:anyNumber -= 30000为啥会报出错误:TypeError: unsupported operand type(s) for -=: 'str' and 'int'我已经将str型转成了int型了啊请指教空格和缩进在代码中都没有问题,贴到百度中可能对齐不好。主要是报的错事TypeError: unsupported operand type(s) for -=: 'str' and 'int',我的 lineBack中全是数字(不论是什么型的),而我已经将字符型的数字转成数字型了。请指教
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

对于类似“123”这样的字符串,anyNumber.isdigit()返回值为True,程序中并没有对这样的字符串进行转换。
你可能理解错了isdigit()函数的功能。isdigit()函数是功能“Return True if all characters in S are digits and there is at least one character in S, False otherwise.” 换句话说,用于判断一个字符串“只”包含数字字符。

查看完整回答
反对 回复 2022-05-10
?
慕标5832272

TA贡献1966条经验 获得超4个赞

如果满足以一个if语句的话确实转为int了
如果没满足的话就会判断anyNumber是不是大于30000了,注意空格阿!

查看完整回答
反对 回复 2022-05-10
  • 2 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信