请教关于python的str和int转换

一段代码(截取):foranyNumberinlineBack:ifanyNumber.isdigit()==False:anyNumber=int(anyNumber)... 一段代码(截取):
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中全是数字(不论是什么型的),而我已经将字符型的数字转成数字型了。请指教
展开
 我来答
小说控XSK
推荐于2017-11-23 · TA获得超过207个赞
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
对于类似“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.” 换句话说,用于判断一个字符串“只”包含数字字符。
kid686868
2011-01-09 · 超过15用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
如果满足以一个if语句的话确实转为int了
如果没满足的话就会判断anyNumber是不是大于30000了,注意空格阿!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-01-09
展开全部
for anyNumber in lineBack:
if anyNumber.isdigit() == False:
anyNumber = int(anyNumber)
print anyNumber,
if anyNumber > 30000:
anyNumber -= 30000
注意缩进
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式