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

发布于 2021-01-29 15:05:30

我正在尝试测试某个数字的十进制表示形式是否至少包含两次数字9,所以我决定执行以下操作:

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

但是Python始终会以“ TypeError:无法将’int’对象隐式转换为str”进行响应。

我在这里做错了什么?实际上,是否存在一种更聪明的方法来检测整数的十进制表示形式中包含某个数字的频率?

关注者
0
被浏览
167
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您的问题在这里:

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看