Python 答案打印0不是实际答案
为什么我的代码正在打印0?我想把1到100平方之间的所有数字相加。我可能刚刚犯了一个愚蠢的错误,但我想不出来。您正在将Python 答案打印0不是实际答案,python,python-3.x,Python,Python 3.x,为什么我的代码正在打印0?我想把1到100平方之间的所有数字相加。我可能刚刚犯了一个愚蠢的错误,但我想不出来。您正在将answer添加到sum1,而您应该将sum1添加到answer 此外,您的范围有一个错误:它上升到但不包括停止值: def difference1(): answer = 0 for a in range(1, 100): sum1 = a**2 sum1 += answer print(answer) differenc
answer
添加到sum1
,而您应该将sum1
添加到answer
此外,您的范围有一个错误:它上升到但不包括停止值:
def difference1():
answer = 0
for a in range(1, 100):
sum1 = a**2
sum1 += answer
print(answer)
difference1()
对于奖励积分,它也可以写为
def sum_of_squares(upto):
answer = 0
for i in range(1, upto + 1):
answer += i*i
return answer
print(sum_of_squares(100)) # => 338350
或作为
您正在将answer
添加到sum1
,而您应该将sum1
添加到answer
此外,您的范围有一个错误:它上升到但不包括停止值:
def difference1():
answer = 0
for a in range(1, 100):
sum1 = a**2
sum1 += answer
print(answer)
difference1()
对于奖励积分,它也可以写为
def sum_of_squares(upto):
answer = 0
for i in range(1, upto + 1):
answer += i*i
return answer
print(sum_of_squares(100)) # => 338350
或作为
您添加到了错误的变量,您需要:
def sum_of_squares(upto):
# sum of squares formula
return upto * (upto + 1) * (2*upto + 1) // 6
您添加到了错误的变量,您需要:
def sum_of_squares(upto):
# sum of squares formula
return upto * (upto + 1) * (2*upto + 1) // 6
你永远不会改变“答案”变量,这就是为什么当你分配它时它总是0
这样做:
answer += sum1
你永远不会改变“答案”变量,这就是为什么当你分配它时它总是0
这样做:
answer += sum1
在这一行,sum1+=answer
,您已将answer声明为0
,并将其添加到sum1
。当前看起来是这样的:sum1=sum1+0
。您希望它看起来像这样:answer=answer+sum1
。因此,请改用此表达式:answer+=sum1
在这一行,sum1+=answer
,您已将答案声明为0
,并将其添加到sum1
。当前看起来是这样的:sum1=sum1+0
。您希望它看起来像这样:answer=answer+sum1
。因此,请改用此表达式:answer+=sum1
您的范围不正确,您将答案添加到了sum1
,而没有将answer
添加到sum
您可以直接将a**2
添加到answer
def difference1():
answer = 0
for a in range(1, 100):
sum1 = a**2
answer += sum1 #the change is on this line
print(answer)
difference1()
您的范围不正确,您将答案添加到sum1
,而未将answer
添加到sum
您可以直接将a**2
添加到answer
def difference1():
answer = 0
for a in range(1, 100):
sum1 = a**2
answer += sum1 #the change is on this line
print(answer)
difference1()
因为您不会在任何地方更改答案sum1+=answer
相当于sum1=sum1+answer
。没有为答案
分配任务。因为您不会在任何地方更改答案
sum1+=answer
相当于sum1=sum1+answer
。没有分配给答案。很好!点击帖子左上角的复选标记,您可以随意接受它作为解决方案。很好!点击文章左上角的复选标记,您可以随意接受它作为解决方案。