我正在尝试在列表中找到元素的总和,这些元素是从用户那里以一行显示的。但是,当我运行该程序时,它显示int
对象不可调用。
mycode的:
l=input().split()
print(l)
s=sum(l)
n=len(l)
if(s%n!=0):
print(-1)
当我运行程序时:
*error in line3*
TypeError: unsupported operand type(s) for +: 'int' and 'str'
和
'int' object is not callable
l = [ int(x) for x in l.split()]
s=sum(l)
n=len(l)
if(s%n!=0):
print(-1)
else:
print(s)
使用类型转换
您能否提供引发错误的示例输入?我敢打赌,列表同时具有int
和str
类型。列表中的每个元素都必须强制为整数,如果不能强制为整数,则程序需要退出并返回该错误,或者仅对可强制列表中的元素求和。这可以通过map
功能来完成。例如:
l=list(map(int, input()))
print(l)
s=sum(l)
n=len(l)
if(s%n!=0):
print(-1)
(Python3)这会将列表元素映射为int类型。