“无法将'int'对象转换为str隐式”错误(Python)

时间:2017-07-16 21:05:23

标签: python types typeerror type-conversion digits

我试图测试某个数字的十进制表示是否包含数字9至少两次,所以我决定做类似的事情:

i=98759102
string=str(i)
if '9' in string.replace(9, '', 1): print("y")
else: print("n")

但是Python总是以“TypeError:无法将'int'对象转换为str隐式”来响应。

我在这里做错了什么?实际上是否有一种更智能的方法来检测某个整数的十进制表示中包含某个数字的频率?

2 个答案:

答案 0 :(得分:2)

你的问题在这里:

string.replace(9, '', 1)

您需要将9设为字符串文字,而不是整数:

string.replace('9', '', 1)

至于更好地计算字符串中9的出现次数,请使用str.count()

>>> i = 98759102
>>> string = str(i)
>>> 
>>> if string.count('9') > 2:
    print('yes')
else:
    print('no')


no
>>>

答案 1 :(得分:0)

你需要九个人的报价。