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

夙愿已清 提交于 2019-12-18 09:07:06

问题


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?


回答1:


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



回答2:


You need quotes around the nine.



来源:https://stackoverflow.com/questions/45133311/cant-convert-int-object-to-str-implicitly-error-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!