写代码过程中遇见的TypeError: unsupported operand type(s) for +: ‘builtin_function_or_method’ and ‘int’

#-*- coding : utf-8 -*-
# 定义一个数字列表,对列表中的数字进行累加
a = [1, 2, 3]
for i in range(3):
	sum += a[i] # sum没有赋值,不能直接放到表达式中使用
print(sum)

以上代码报错:

sum += a[i]
TypeError: unsupported operand type(s) for +: 'builtin_function_or_method' and 'int'

TypeError: unsupported operand type(s) for +: ‘builtin_function_or_method’ and ‘int’

该错误具体翻译就是:类型错误:操作符“+”不支持:‘内置函数或方法’ 与 '整型‘ 相加

个人认为产生上述错误的原因是:虽然python变量不需要提前声明,但并不说明,在没有给它赋值的情况下,把它直接放在表达式中去进行运算操作【因为没有赋值的话,程序运行时并不知道该变量是什么类型(默认为’内置函数或方法’)从而无法得知它是否能进行运算操作】

解决方法:事先声明出错变量

改正后的代码:

a = [1, 2, 3]
sum = 0 # 事先给sum赋值,定义sum为数字类型,可以进行算术运算
for i in range(3):
	sum += a[i]
print(sum)
>>>6

事先定义sum后,程序运行成功。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐