Python ';int';对象不可调用:查找列表中元素的总和
我试图在一行中找到列表中元素的总和,其中的元素来自用户。但是当我运行程序时,它显示,Python ';int';对象不可调用:查找列表中元素的总和,python,python-3.5,Python,Python 3.5,我试图在一行中找到列表中元素的总和,其中的元素来自用户。但是当我运行程序时,它显示,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
对象是不可调用的
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
类型,也有str
类型。列表中的每个元素都需要强制为整数,如果不能,则程序需要带着该错误退出,或者只对列表中可以强制的元素求和。这可以通过map
功能完成。例如:
l=list(map(int, input()))
print(l)
s=sum(l)
n=len(l)
if(s%n!=0):
print(-1)
(蟒蛇3)
这将列表元素映射到int类型
l = [ int(x) for x in l.split()]
s=sum(l)
n=len(l)
if(s%n!=0):
print(-1)
else:
print(s)
使用类型转换Hi,这是完整的代码吗?如果不是,您是否可以用导致错误的行发布代码?它是否显示int不可调用或不支持的操作数类型?打个招呼。请注意,
input().split()
将为您提供一个字符串列表。请显示您的list
print(l)。在input()中使用l=[int(x)表示x。split()]不起作用@rajenderkumarw我犯了什么错误?sum函数只能用整数列表调用。您正在传递字符串文本列表。
l = [ int(x) for x in l.split()]
s=sum(l)
n=len(l)
if(s%n!=0):
print(-1)
else:
print(s)