且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-10-24 19:01:13

你的问题在这里:

string.replace(9, '', 1)

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

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

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

>>>我 = 98759102>>>字符串 = str(i)>>>>>>如果 string.count('9') >2:打印('是')别的:打印('否')不>>>

I am trying to test if the decimal representation of a certain number contains the digit 9 at least twice, so I decided to do something like that:

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

But Python always responds with "TypeError: Can't convert 'int' object to str implicitly".

What am I doing wrong here? Is there actually a smarter method to detect how often a certain digit is contained in the decimal representation of an integer?

Your problem is here:

string.replace(9, '', 1)

You need to make 9 a string literal, rather than an integer:

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

As for a better way to count the occurrences of 9 in your string, use str.count():

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


no
>>>