python新手关于编写函数的问题sum = 0def sum(i1,i2):result = 0for i in range(i1,i2 + 1):result += ireturn resultsum = sum(1,9)print sum(1,9)显示错误,但第8,9行交换下位置,如下所示:sum = 0def sum(i1,i2):result = 0for i in rang

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 23:41:00

python新手关于编写函数的问题sum = 0def sum(i1,i2):result = 0for i in range(i1,i2 + 1):result += ireturn resultsum = sum(1,9)print sum(1,9)显示错误,但第8,9行交换下位置,如下所示:sum = 0def sum(i1,i2):result = 0for i in rang
python新手关于编写函数的问题
sum = 0
def sum(i1,i2):
result = 0
for i in range(i1,i2 + 1):
result += i
return result
sum = sum(1,9)
print sum(1,9)
显示错误,但第8,9行交换下位置,如下所示:
sum = 0
def sum(i1,i2):
result = 0
for i in range(i1,i2 + 1):
result += i
return result
print sum(1,9)
sum = sum(1,9)
却能正常运行,为什么?

python新手关于编写函数的问题sum = 0def sum(i1,i2):result = 0for i in range(i1,i2 + 1):result += ireturn resultsum = sum(1,9)print sum(1,9)显示错误,但第8,9行交换下位置,如下所示:sum = 0def sum(i1,i2):result = 0for i in rang
sum = 0
def sum(i1, i2):
        result = 0
        for i in range(i1, i2 + 1):
                 result += i
        return result
sum = sum(1, 9)
print sum(1, 9)
报错是因为,你的变量sum和函数sum是相同的名称.

导致执行sum=sum(1,9)时,把sum重载为了int型的变量,导致再执行sum(1,9)时会报错.


如果改成这样,不管顺序如何都不会报错了.
sum1 = 0
def sum(i1, i2):
        result = 0
        for i in range(i1, i2 + 1):
                 result += i
        return result
sum1 = sum(1, 9)
print sum(1,9)