Python TypeError: unsupported operand type(s) for /: ‘list‘ and ‘int‘
记一次有点蠢的报错:TypeError: unsupported operand type(s) for /: ‘list’ and ‘int’
出处
return [self.binary_find(nums1, 0, m-1, nums2, 0, n-1, (m+n)//2 - 1) +
self.binary_find(nums1, 0, m-1, nums2, 0, n-1, (m+n)//2)] / 2
其中,binary_find是我写的一个方法,该方法返回的是int。
我的本意是,调用两次binary_find方法后,将两个返回值取平均值。
错误原因
中括号不要随便用!
在这里因为里面的小括号很多,所以我想当然地写了一个中括号,本意是表示运算顺序,但这里的中括号将原本加法得到的int转换成了list!
所以正确的写法应该是:
return (self.binary_find(nums1, 0, m-1, nums2, 0, n-1, (m+n)//2 - 1) +
self.binary_find(nums1, 0, m-1, nums2, 0, n-1, (m+n)//2)) / 2
总结
想要表示运算顺序的先后时一定要用小括号!!