Python 2.7 Python类型错误:';类型';对象是不可编辑的

Python 2.7 Python类型错误:';类型';对象是不可编辑的,python-2.7,Python 2.7,我已经查找了关于这个错误的其他线程“TypeError:“type”对象是不可编辑的”,但我不太明白是什么错了 a = ["Hey","Oh",32,12,"No",41] b = [23,65,2,7,21,29] c = ["My","Friends","At","Coding","Dojo"] def listType(arg): new_string = "" numSum = 0 for value in type(a): if isinstance(val

我已经查找了关于这个错误的其他线程“TypeError:“type”对象是不可编辑的”,但我不太明白是什么错了

a = ["Hey","Oh",32,12,"No",41]
b = [23,65,2,7,21,29]
c = ["My","Friends","At","Coding","Dojo"]

def listType(arg):
    new_string = ""
    numSum = 0

for value in type(a):
    if isinstance(value,int) or isinstance(value,float):
        numSum += value
    elif isinstance(value,str):
        new_string += value  
    if new_string and numSum:
        print "String:", new_string
        print "Sum:", numSum
        print "This list is of mixed type"
    elif new_string:
        print "String:", new_string
        print "This list is of string type"
    else:
        print "Sum:", numSum
        print "This list is of integer type" 

print listType(a)
如果查询
类型(a)
,则会得到
列表
。您可能希望将元素映射到相应的类型,因此使用
映射

def listType(a):
    new_string = ""
    numSum = 0
    for value in map(type,a):
        if isinstance(value,int) or isinstance(value,float):
            numSum += value
        elif isinstance(value,str):
            new_string += value  

    if new_string and numSum:
        print "String:", new_string
        print "Sum:", numSum
        print "This list is of mixed type"
    elif new_string:
        print "String:", new_string
        print "This list is of string type"
    else:
        print "Sum:", numSum
        print "This list is of integer type"

listType(a)
def列表类型(a):
new_string=“”
numSum=0
对于映射中的值(类型a):
如果isinstance(值,int)或isinstance(值,float):
numSum+=数值
elif isinstance(值,str):
新字符串+=值
如果新的_字符串和numSum:
打印“字符串:”,新字符串
打印“总和:”,numSum
打印“此列表为混合类型”
elif新字符串:
打印“字符串:”,新字符串
打印“此列表为字符串类型”
其他:
打印“总和:”,numSum
打印“此列表为整数类型”
列表类型(a)
此外,您不应
打印
列表类型的结果,因为它不会
返回任何内容,并修复程序的缩进。我希望它现在是正确的。

如果您查询
键入(a)
,您将得到
列表。您可能希望将元素映射到相应的类型,因此使用
映射

def listType(a):
    new_string = ""
    numSum = 0
    for value in map(type,a):
        if isinstance(value,int) or isinstance(value,float):
            numSum += value
        elif isinstance(value,str):
            new_string += value  

    if new_string and numSum:
        print "String:", new_string
        print "Sum:", numSum
        print "This list is of mixed type"
    elif new_string:
        print "String:", new_string
        print "This list is of string type"
    else:
        print "Sum:", numSum
        print "This list is of integer type"

listType(a)
def列表类型(a):
new_string=“”
numSum=0
对于映射中的值(类型a):
如果isinstance(值,int)或isinstance(值,float):
numSum+=数值
elif isinstance(值,str):
新字符串+=值
如果新的_字符串和numSum:
打印“字符串:”,新字符串
打印“总和:”,numSum
打印“此列表为混合类型”
elif新字符串:
打印“字符串:”,新字符串
打印“此列表为字符串类型”
其他:
打印“总和:”,numSum
打印“此列表为整数类型”
列表类型(a)

此外,您不应
打印
列表类型的结果,因为它不会
返回任何内容,并修复程序的缩进。我希望它现在是正确的。

对于类型(a)中的值:
您在这里想做什么?@WillemVanOnsem编写一个程序,根据元素的数据类型,获取列表并为列表中的每个元素打印消息。您的程序输入将始终是一个列表。对于列表中的每个项目,测试其数据类型。如果项目是字符串,请将其连接到新字符串上。如果它是一个数字,则将其添加到运行总和中。在程序结束时,打印字符串、数字和列表内容的分析。如果它只包含一种类型,请打印该类型,否则,请为类型(a)中的值打印“混合”
您打算在这里做什么?@WillemVanOnsem编写一个程序,根据该元素的数据类型,获取列表并为列表中的每个元素打印消息。您的程序输入将始终是一个列表。对于列表中的每个项目,测试其数据类型。如果项目是字符串,请将其连接到新字符串上。如果它是一个数字,则将其添加到运行总和中。在程序结束时,打印字符串、数字和列表内容的分析。如果仅包含一种类型,则打印该类型,否则打印“混合”