我需要做的是创建一个函数,其中先前输入的输入(在这种情况下为y)获得所有加起来的数字。
或者,正如我的老师所说:
然后它应该找到从1开始到输入数字的所有数字的总和。
例如,如果我键入10,则函数应返回55 因为:
1+2+3+4+5+6+7+8+9+10 = 55
如果输入12,则该功能应返回78 这是因为:
1+2+3+4+5+6+7+8+9+10+11+12 = 78
这是我到目前为止所尝试的内容:
if y == 1:
return y
elif y <= 1 and y <= 999999999:
print(sum(y))
答案 0 :(得分:0)
关于您的代码:
if y == 1:
return y
elif y <= 1 and y <= 999999999:
print(sum(y))
首先,为什么您在return
部分使用if
但在print()
部分使用elif
?
然后,只需做这样的事情:
def function_name(number):
return sum(range(1, number+1))
<强>演示:强>
例如,数字为10
:
print(function_name(10))
<强>输出:强>
55
range()
会在此处生成1, 2, 3...8, 9, 10
这样的生成器。 sum()
可以执行您想要的1 + 2 + 3...8 + 9 + 10
之类的操作。
答案 1 :(得分:0)
这看起来像是一项任务,所以你自己尝试而不是从互联网上获得完整的答案会更好。
但是我可以指出你正确的方向。
在您的代码中:
elif y <= 1 and y <= 999999999:
print(sum(y))
问问自己第一行是否有意义。如果y小于1,那肯定它也小于9999 .... 试着在这里考虑正确的算子。
你要做的事情(假设这是学习循环的作业)是一个简单的循环,从1开始,到y结束,你可以在其中添加。
答案 2 :(得分:-1)
您需要了解范围:
范围(开始,停止[,步骤])
这是一个多功能函数,用于创建包含算术进度的列表。它最常用于for循环。参数必须是普通整数。如果省略step参数,则默认为1.如果省略start参数,则默认为0.完整表单返回普通整数列表[start,start + step,start + 2 * step,...] 。如果step为正,则最后一个元素是最大的start + i * step小于stop;如果step为负数,则最后一个元素是最小的start + i * step大于stop。 step不能为零(否则会引发ValueError)。
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10, 2)
[1, 3, 5, 7, 9]
sum(iterable [,start])
从左到右汇总开始和迭代的项目并返回总数。 start默认为0. iterable的项通常是数字,起始值不允许是字符串。
def my_sum(n):
return sum(range(n))