我正在尝试测试某个数字的十进制表示形式是否至少包含两次数字9,所以我决定执行以下操作:
i=98759102 string=str(i) if '9' in string.replace(9, '', 1): print("y") else: print("n")
但是Python始终会以“ TypeError:无法将’int’对象隐式转换为str”进行响应。
我在这里做错了什么?实际上,是否存在一种更聪明的方法来检测整数的十进制表示形式中包含某个数字的频率?
您的问题在这里:
string.replace(9, '', 1)
您需要使9字符串文字,而不是整数:
9
string.replace('9', '', 1)
为了更好地计算9字符串中出现的次数,请使用str.count():
str.count()
>>> i = 98759102 >>> string = str(i) >>> >>> if string.count('9') > 2: print('yes') else: print('no') no >>>