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您在此处的解释帮助我理解并解决了不同类型的问题。非常感谢。