以10为基数的int()的文本无效:“这实际上意味着什么?”?

2024-04-25 17:50:57 发布

您现在位置:Python中文网/ 问答频道 /正文

初学者!我正在编写一个简单的代码来计算一个项在列表中出现的次数(例如,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

每次我提交代码时

"invalid literal for int() with base 10:"

我发现正确的代码是:

def count(sequence, item):
    s = 0
    for i in sequence:
       if **i == item**:
           s += 1
    return s

然而,我只是好奇那个错误陈述意味着什么。为什么我不能在int()离开?


Tags: 代码in列表forreturnifdefcount
2条回答

错误为“int()的文本无效,基为10:”。这只是意味着您传递给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))

相关问题 更多 >