"Can't convert 'int' object to str implicitly" 错误 (Python)

"Can't convert 'int' object to str implicitly" error (Python)

我正在尝试测试某个数字的十进制表示是否至少两次包含数字 9,所以我决定这样做:

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

但是 Python 总是以 "TypeError: Can't convert 'int' object to str implicitly" 响应。

我在这里做错了什么?是否有更智能的方法来检测某个数字在整数的十进制表示中出现的频率?

你需要围绕九的引号。

你的问题在这里:

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
>>>