"基数为10的int()的文字无效:"这究竟意味着什么?

时间:2015-06-17 23:07:24

标签: 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(sequence, item):
    s = 0
    for i in sequence:
       if **i == item**:
           s += 1
    return s

但是,我只是好奇这个错误陈述的含义。为什么我不能留在int()

2 个答案:

答案 0 :(得分:8)

错误是“基数为10的int()的无效文字:”。这只是意味着您传递给int的参数看起来不像数字。换句话说,它是空的,或者除了数字之外还有一个字符。

这可以在python shell中重现。

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

答案 1 :(得分:0)

如果你的序列中出现了例如字母,你可以尝试这样的事情:

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