python中的递归函数?

python中的递归函数?,python,function,recursion,sum,Python,Function,Recursion,Sum,所以问题是:设计一个接受整型参数的函数,并返回从1到作为参数传递的数字的所有整数的总和。例如,如果50作为参数传递,函数将返回1,2,3,4..50之和。使用递归计算和。 我有很多麻烦,你可以从我的代码看出 def main(): numbers= int(input('Enter a number to add the sums: ') mysum = sum_num(numbers,1) def sum_num(numbers,mysum): start=1

所以问题是:设计一个接受整型参数的函数,并返回从1到作为参数传递的数字的所有整数的总和。例如,如果50作为参数传递,函数将返回1,2,3,4..50之和。使用递归计算和。 我有很多麻烦,你可以从我的代码看出

def main():
    numbers= int(input('Enter a number to add the sums: ')
    mysum = sum_num(numbers,1)


def sum_num(numbers,mysum):
    start=1
    end=numbers
    if start>end:
        return 0
    else:
        return my_sum
main()
def汇总(n):
#这是你的紧急休息时间。如果n小于1,则返回1
#一个特定的阈值,否则你会得到一个无穷大的值
#环路
如果打一点高尔夫球:

def sumup(n):
    return (n + sumup(n - 1) if n > 1 else n) if isinstance(n, int) else None

到底是什么问题?“我有很多麻烦…”对SO来说太模糊了。我无法让代码正常工作。我也不知道我做的是否正确。对于一个递归的东西,它必须。。。你知道。递归地调用自己。也许你想从这里开始。你的代码中甚至没有递归……也许你可以从学习什么是递归函数调用开始。谷歌的例子递归斐波那契和递归阶乘函数。我认为这些是最基本的。你也可以为正整数指数做一个简单的递归求幂函数。这一定是家庭作业。算术级数的和是元素数*第一个和最后一个的平均数。你使它变得更长更复杂。此外,高尔夫并不意味着坚持特定的实现:
def(n):返回n*(n+1)/2
@septi OP需要递归。我刚刚简化了pythonic功能。我的回答甚至是无误的。看起来你只是想说服OP投票,接受你的答案,不管你错了多少。否决一个有效的答案。。。你的公平竞争在哪里?StackOverflow不是收集代表,而是给出好的答案。你没有简化。2.OP没有要求代码高尔夫(更不用说你没有“高尔夫”。查阅代码高尔夫的定义。)3。你没有遵循python的禅。4.无需检查
int
,因为在
int(input())
时,输入被强制转换为
int
(而且,类型检查根本不是pythonic)。5.您不需要返回
None
,因为不返回任何内容等于返回
None
。6.这可能是一些高尔夫运动的开始:
def(n):如果n>1,则返回n+f(n-1),否则返回1
7。我根本不反对任何有效的答案。是的,我用Guido:2添加的Python特性简化了它。我刚才用“高尔夫”这个词来形容它的短处。你不需要解释什么是密码高尔夫。吻3.为什么?这跟这里有关系吗?四号。你是根据OP的例子来假设的。如果OP未将值强制转换为整数,则您的解决方案将无法工作。如果类型检查不是pythonic的,那么Python上就不会有
isinstance()
。5.使用该快捷方式,我需要返回
None
,您应该知道这一点。6.我一点也不打高尔夫球。我结束了这场愚蠢的讨论,这是我最后的答案。python中几乎不需要类型检查、处理异常等。请遵循python的zen。亲吻也不符合你的解决方案,不!你没有让它更简单。你把它弄得复杂,可读性差。顺便说一句,python的禅宗总是相关的,不,我不会回答你的任何其他评论。你在这里展示的编码风格很难看,如果你不同意我的观点,请阅读Robert C.Martin的“干净的代码”。但是,想什么就做什么,我不在乎。是的,我该怎么做才能让用户输入一个整数?我猜是在print语句中添加输入?我只画了你想要的递归。
print
语句只是一个示例。你应该阅读一些关于python()的基本教程,这里不是讨论一般编程的合适地方。顺便说一句,无用的
else
语句……是的,我更喜欢这一条,因为它看起来很像书中的方法。再次感谢
def sumup(n):
    return (n + sumup(n - 1) if n > 1 else n) if isinstance(n, int) else None