python return返回的值为什么总是None

``````def sum_number(num):

print(num)
if num == 1:
return
# return 123
# return num
# return "h"
sum_number(num - 1)

print(sum_number(3))

``````
``````def sum_number(num):

print(num)
if num == 1:
return 123
sum_number(num - 1)

print(sum_number(3))
``````
``````def sum_number(num):

print(num)
if num == 1:
return "h"
sum_number(num - 1)

print(sum_number(3))
``````
``````def sum_number(num):

print(num)
if num == 1:
return num
sum_number(num - 1)

print(sum_number(3))
``````

``````3
2
1
None
``````

``````def sum_numbers(num):

if num == 1:
return 1

temp = sum_numbers(num - 1)

return num + temp

result = sum_numbers(100)
print(result)

``````

``````5050
``````

1个回答

def sum_number(num):
print(num)
if num == 1:
return 123
else:
k=sum_number(num - 1)
return k

print(sum_number(3))
3
2
1
123

8 个月之前 回复
wsawsd 您好，可以请问为什么原来程序中，如果是return 123的话，最后打印出的结果不是3 2 1 123呢，return最后不是把函数值返回了吗。像题目中最后累加的程序里，return 1，sum_number(1),打印的结果就是1，而return 2的话，sum_number(1)，打印的结果就是2，最后打印的结果是跟着return后面的值来的。
8 个月之前 回复

josephus问题递归求解，函数返回值问题，返回值为none?
# josephus问题递归求解，函数返回值问题 ``` def josephus(args,number):#传入列表和数字 tidailiebiao=[i for i in args]#为了多次调用，使用替代列表 print(tidailiebiao) if(len(tidailiebiao)<number):#递归结束条件 #print(tidailiebiao) #print(len(tidailiebiao)) return tidailiebiao#返回值 else: delete_people=tidailiebiao.pop(number-1)#删除元素 print("remove:%d"%delete_people) tidailiebiao=tidailiebiao[number-1:]+tidailiebiao[:number-1]#生成新列表 josephus(tidailiebiao,number)#递归 test=[i for i in range(1,42)] print(test) print(josephus(test,3))#测试 ``` ![图片说明](https://img-ask.csdn.net/upload/201912/26/1577355089_28075.png) 最后的返回值为none 尝试解决方案，将函数的返回值重新复制给一个新列表，返回新列表，不能解决问题 在函数中加入代码测试发现，当达到返回条件时，返回值不为空 求帮助，多谢各位了
flask响应return时老是报相同的错：TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.
flask响应return时老是报相同的错：TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement. python代码为： ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200124022917753.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjQ0MTQ3,size_16,color_FFFFFF,t_70) html代码： ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200124022948221.png) 奇怪的是另一个与这样相同的响应可以成功跳转，但只有这个不行…… 求助！！！

python更新pip失败，困扰了我好久

python递归的无法返回或者达到某一条件终止并return
``` class Solution: def canJump(self, nums): if len(nums) == 0: return False def DFS(nums): if len(nums) == 1: return True for i in range(1,nums[0]+1): DFS(nums[i:]) if DFS(nums) is False: print('1111') return True elif DFS(nums) is None: print('2222') return False S =Solution() S.canJump([2,0,0]) ``` 两个问题：1为什么我DFS函数没有返回TRUE ，返回的是None 2如果按照网上的方法在 DFS(nums[i:]) 前加上return 为什么我的i不会循环到2这个值，只能是1就停止了？

[Python]为什么在win10系统中pip指令用不了?
**哪位大神能帮我解决一下？** 本人还是个小白，所以出现这个错误也不敢妄下断言。 ``` C:\Users\46000>pip Traceback (most recent call last): File "c:\program files\python38\lib\runpy.py", line 193, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\program files\python38\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "C:\Program Files\Python38\Scripts\pip.exe\__main__.py", line 9, in <module> TypeError: 'module' object is not callable ``` 为什么'module'对象不可调用？ ![图片说明](https://img-ask.csdn.net/upload/202001/06/1578279867_896220.png)
python scrapy 爬虫图片新手求助

python 安装 pymssql 库时报错

python pd.merge()合并后的DataFrame无法输出到excel表

python类内部的方法调用
tensorflow 训练数据集时，报错InvalidArgumentError: Incompatible shapes: [15] vs. [15,6]，标签的占位符与标签喂的数据格式不符，要怎么解决？

python3调用别人的opencv图片匹配程序报错

pip升级怎么提示这个 怎么 解决 老版本也删除了 我的是python 3.7
python 关于对象实例化的问题
``` class Node(object): # self 当我们实例化一个对象的情况下，再去调用这个函数的时候，这个实例就是self def __init__(self, data, next = None): self.data = data self.next = next class Stack(object): #用到的模块更多 def __init__(self, top = None): # none 就是一个对象 self.top = top def push(self,data): #创建新的节点放到栈顶 self.top = Node(data, self.top) def pop(self): #拿出栈顶元素，原来的栈发生改变 if self.top is None: return None data = self.top.data self.top = self.top.next return data def peek(self): #查看栈顶元素，原来的栈不变 return self.top.data if self.top is not None else None def isEmpty(self): return self.peek() is None if __name__ == "__main__": #别的模块调用这个模块下程序的入口 stack = Stack() stack1 = stack.push(1) stack1 = stack.push(2) print stack.peek(), #查看栈顶元素 stack.pop() print stack.peek() #输出： 2 1 ``` 这个是python stack()的源代码，这里面出现了top，data，但是并没有声明对象的类型？ Python中不声明对象类型，是可以用任何类型吗还是什么意思？
python递归 return 问题
``` class Solution: def canJump(self, nums): if len(nums) == 0: return False def DFS(nums): if len(nums) == 1: return True for i in range(1,nums[0]+1): return DFS(nums[i:]) #上面这两行代码如果改成 return DFS(nums[1:]、 DFS(nums[2:]......)则可以运行，但是引入for循环后，return就变为None) S =Solution() S.canJump([2,0,0]) ``` 想知道怎么解决？卡了我好久

Java学习的正确打开方式

《奇巧淫技》系列-python！！每天早上八点自动发送天气预报邮件到QQ邮箱

Python 植物大战僵尸代码实现(2):植物卡片选择和种植

YOLO 是我非常喜欢的目标检测算法，堪称工业级的目标检测，能够达到实时的要求，它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置，当然，也能预测物体的类别。 之前我有写博文介绍过它，但是每次重新读它的论文，我都有新的收获，为此我准备写一个系列的文章来详尽分析它。这是第一篇，从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址：https://www.c

20行Python代码爬取王者荣耀全英雄皮肤

TCP/IP协议是传输层协议，主要解决数据如何在网络中传输，而HTTP是应用层协议，主要解决如何包装数据。 一、TCP与UDP的不同 1. 是否需要建立连接。 UDP在传送数据之前不需要先建立连接；TCP则提供面向连接的服务； 2. 是否需要给出确认 对方的传输层在收到UDP报文后，不需要给出任何确认，而 TCP需要给出确认报文，要提供可靠的、面向连接的传输服务。 3.虽然UDP不提供可靠交...

2019年互联网寒冬，大批企业开始裁员，下图是网上流传的一张截图： 裁员不可避免，那如何才能做到不管大环境如何变化，自身不受影响呢？ 我们先来看一个有意思的故事，如果西游记取经团队需要裁员一名，会裁掉谁呢，为什么？ 西游记团队组成： 1.唐僧 作为团队teamleader，有很坚韧的品性和极高的原则性，不达目的不罢休，遇到任何问题，都没有退缩过，又很得上司支持和赏识(直接得到唐太宗的任命，既给

Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库——点这里跳转 文章目录Python语言高频重点汇总**GitHub面试宝典仓库——点这里跳转**1. 函数-传参2. 元类3. @staticmethod和@classmethod两个装饰器4. 类属性和实例属性5. Python的自省6. 列表、集合、字典推导式7. Python中单下划线和双下划线8. 格式化字符串中的%和format9.

（经验分享）作为一名普通本科计算机专业学生，我大学四年到底走了多少弯路

Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型？ 3、使用 Redis 有哪些好处？ 4、Redis 相比 Memcached 有哪些优势？ 5、Memcache 与 Redis 的区别都有哪些？ 6、Redis 是单进程单线程的？ 7、一个字符串类型的值能存储最大容量是多少？ 8、Redis 的持久化机制是什么？各自的优缺点？ 9、Redis 常见性...

【设计模式】单例模式的八种写法分析

《面试宝典》：检验是否为合格的初中级程序员的面试知识点，你都知道了吗？查漏补缺