2017-07-16 197 views
2

我想測試某個數字的十進制表示是否包含數字9至少兩次,所以我決定做這樣的事情:「無法將int對象隱式轉換爲str」錯誤(Python)

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

但是Python總是以「TypeError:無法將int對象隱式轉換爲str」作爲響應。

我在這裏做錯了什麼?實際上是否有更智能的方法來檢測某個數字在整數的十進制表示中的含義?

+2

'string.replace('9','',1)'(note 9左右的單引號)。還有:'string.count('9')' –

+1

'str(i).count('9')> 1' –

回答

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

你需要圍繞九個引號。

相關問題