Python 3.4,将数字添加到整数

时间:2015-10-21 06:01:06

标签: python python-3.4

我需要做的是创建一个函数,其中先前输入的输入(在这种情况下为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))

3 个答案:

答案 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))