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?

mxian
  • 139
  • 4

2 Answers2

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
>>>
Christian Dean
  • 22,138
  • 7
  • 54
  • 87
-1

You need quotes around the nine.

whackamadoodle3000
  • 6,684
  • 4
  • 27
  • 44
  • Mine was first. Look at the time. You could say that the other answer was already given by this one, because it came after mine. Since SO puts most upvoted answers at the top, it looks like the other one came first. – whackamadoodle3000 Mar 20 '18 at 03:26
  • 1
    Im sorry i didnt properly check the time these answers were posted. – André Kool Mar 20 '18 at 06:23