TypeError:+ =的不支持的操作数类型:'builtin_function_or_method'和'int'

时间:2013-09-27 22:45:51

标签: python

我在尝试运行此代码时收到此错误(TypeError: unsupported operand type(s) for +=: 'builtin_function_or_method' and 'int'

total_exams = 0
for total_exams in range(1, 100001):
    sum += total_exams
print(sum)

sum = 0
total_exams = 0
while count <= 100000:
    sum += total_exams
    total_exams += 1
print(sum)

sum = int("Please enter Exam grade, or press 999 to end: ")
while true:
    if sum <= 100:
        sum += total_exams
        total_exams += 1
    elif sum == "999":
        print(sum / total_exams)

总之,我只需要运行程序直到输入999,然后找到输入的所有数字的平均值。至少一点帮助会很好。

所以我已将我的代码编辑为(新)

totalExams = 0
total_sum = 0
for totalExams in range (1, 100001):
    total_sum += totalExams
print(total_sum)

total_sum = 0
totalExams = 0
while totalExams <= 100000:
    total_sum += totalExams
    totalExams += 1
print(total_sum)

exam_sum = int("Please enter Exam grade, or press 999 to end: ")
while true:
    if exam_sum <= 100:
        exam_sum += totalExams
        totalExams += 1
    elif exam_sum == "999":
        print(exam_sum / totalExams)

追踪(最近一次呼叫最后一次):

文件“C:/Python33/vfvfv.py”,第14行,in     exam_sum = int(“请输入考试成绩,或按999结束:”) ValueError:基数为10的int()的文字无效:'请输入考试成绩,或按999结束:'

3 个答案:

答案 0 :(得分:7)

这是对你们其中一个问题的回答,但是这对你们没有多大帮助,因为你们的代码已经完全崩溃......

sum是一个内置函数,就像len一样。使用另一个名字,你很好; - )

进一步说明:

在这一行

sum += totalExams
你正在做什么

sum = sum + totalExams

其中totalExams的类型为int,而sum是python中的内置函数。由于+int未实施built-in-function运算符,因此您获得了TypeError。 (sum之前未重新定义,因此它指向函数。)

您只需选择尚未使用的变量名称即可解决此问题,例如total_sumsum_exams等:

sum_exams += totalExams

或者在使用之前简单声明:

sum = 0

警告:这样做,你将覆盖内置函数sum()

更多问题:

在这里,您将string投射到int,这绝对没有意义:

exam_sum = int("Please enter Exam grade, or press 999 to end: ")

我猜你是想从用户那里得到一些输入并将其转换为整数?在这种情况下,您应该使用input()

exam_sum = input("Please enter Exam grade, or press 999 to end: ")

在您再次编辑问题之前,下一个错误将是

NameError: name 'true' is not defined

True就是你想要的......

最后但并非最不重要

在完成所有这些修复后,您将最终获得无限循环。现在,在提出下一个问题之前,先坐下来考虑一下你的代码。

答案 1 :(得分:0)

在第一次循环之前,您尚未定义sum。如果你添加

sum = 0

它会正常工作。

但是,您可能希望使用不同的变量名,这样就不会覆盖内置函数。

答案 2 :(得分:0)

如果您试图让用户输入数字,您可能意味着输入(输入(...))