Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “如何纠正错误”;+;=不支持的操作数类型:';int';和';str'&引用;_Python_Python 3.x - Fatal编程技术网

Python “如何纠正错误”;+;=不支持的操作数类型:';int';和';str'&引用;

Python “如何纠正错误”;+;=不支持的操作数类型:';int';和';str'&引用;,python,python-3.x,Python,Python 3.x,当我执行这段代码时,它给出了错误“不支持+=:'int'和'str'的操作数类型”,这是因为在第二个for循环中执行的语句,在该循环中编译器也给出了未定义名称的警告。我在使用这些名称的同一位置分别定义了这些名称,这在Python中是不需要的。在else体中执行第一个for循环后,编译器将在最后一段代码中打印语句(我从代码网站上的调试功能中看到了这一点)。如何纠正这一切 L = ['apples', 'oranges', 'kiwis', 'pineapples'] def stdDevOfLe

当我执行这段代码时,它给出了错误“不支持+=:'int'和'str'的操作数类型”,这是因为在第二个for循环中执行的语句,在该循环中编译器也给出了未定义名称的警告。我在使用这些名称的同一位置分别定义了这些名称,这在Python中是不需要的。在else体中执行第一个for循环后,编译器将在最后一段代码中打印语句(我从代码网站上的调试功能中看到了这一点)。如何纠正这一切

L = ['apples', 'oranges', 'kiwis', 'pineapples']

def stdDevOfLengths(L):
    if L == []:
        return 'NAN'
    else:
        for i in range(len(L)):
            sumL = 0
            sumL += L[i]
        mew = sumL / len(L)
        for i in range(len(L)):
            t , sum2 == [] , 0
            t[i] == index(L[i])
            sum2 += (t[i] - mew)^2  
        stdDev = (sum2/len(L))^0.5
        return stdDev

print(stdDevOfLengths(L))    

希望这就是你所需要的:

L = ['apples', 'oranges', 'kiwis', 'pineapples']

def stdDevOfLengths(L):
    if L == []:
        return 'NAN'
    else:
        sumL = 0
        for i in range(len(L)):
            sumL += len(L[i])
        mew = sumL / len(L)
        for i in range(len(L)):
            t , sum2 = {} , 0
            t[i] = len(L[i])
            sum2 += (t[i] - mew)**2  
        stdDev = (sum2/len(L))**0.5
        return stdDev

print(stdDevOfLengths(L))


打印---->1.5

可能您想要执行
sumL+=len(L[i])
此外,您还需要将
t,sum2=[],0
置于for循环之外欢迎使用StackOverflow,而且。。。在这里申请。我们无法“修复”您的代码,因为您未能解释您试图执行的操作。请学习测试你的代码片段;在进行任何验证之前,您已经一个接一个地积累了错误。如果您在浏览器中搜索“Python计算标准偏差”,您会找到比我们在这里所能处理的更好的解释这一点的参考。为什么您一直将空列表重新分配给
t
,以及为什么使用双等号
=
。我通常会重新考虑这一行:
t,sum2=[],0
sumL+=I
肯定不是需要的;这将只计算从0到
len(L)-1的数字之和,这无助于计算字符串长度的平均值。您提供的代码运行良好,接近1.8的精确答案。我需要找到一种方法来避免以某种方式按时犯这样的错误。。。。