Python &引用;以10为基数的int()的文本无效;这究竟意味着什么?

Python &引用;以10为基数的int()的文本无效;这究竟意味着什么?,python,int,Python,Int,这里是初学者!我正在编写一个简单的代码来计算一个项目在列表中出现的次数(例如,count([1,3,1,4,1,5],1)将返回3) 这就是我最初拥有的: def count(sequence, item): s = 0 for i in sequence: if int(i) == int(item): s += 1 return s 每次我提交这个代码,我都会 “基数为10的int()的文本无效:” 我发现正确的代码是: def

这里是初学者!我正在编写一个简单的代码来计算一个项目在列表中出现的次数(例如,
count([1,3,1,4,1,5],1)
将返回3)

这就是我最初拥有的:

def count(sequence, item):
    s = 0
    for i in sequence:
       if int(i) == int(item):
           s += 1
    return s
每次我提交这个代码,我都会

“基数为10的int()的文本无效:”

我发现正确的代码是:

def count(sequence, item):
    s = 0
    for i in sequence:
       if **i == item**:
           s += 1
    return s
然而,我只是好奇这个错误声明的含义。为什么我不能直接留在
int()

错误是“以10为基数的int()无效文本:”。这只是意味着传递给
int
的参数看起来不像一个数字。换句话说,它要么是空的,要么里面有一个字符而不是一个数字

这可以在python shell中复制

>>> int("x")
ValueError: invalid literal for int() with base 10: 'x'

例如,如果字母出现在序列中,您可以尝试以下操作:

from __future__ import print_function

def count_(sequence, item):
    s = 0
    for i in sequence:
        try:
            if int(i) == int(item):
                s = s + 1
        except ValueError:
            print ('Found: ',i, ', i can\'t count that, only numbers', sep='')
    return s

print (count_([1,2,3,'S',4, 4, 1, 1, 'A'], 1))

如果
sequence
包含的对象不是
int
,该怎么办?错误消息意味着
int
被传递了一个它不知道如何转换的值。第一个方法很好,您提供的参数正确吗?
count([1,3,1,4,1,5],1)
可以正确地使用原始代码。什么输入失败?请不要复制标准库中的功能。我建议您使用此选项:
[1,3,1,4,1,5]。计数(1)
->
3
..@recrvise您在此处的解释帮助我理解并解决了不同类型的问题。非常感谢。