首页
学习
活动
专区
圈层
工具
发布

Python 递归函数返回值为 None 的解决办法

在使用 Python 开发的过程中,避免不了会用到递归函数。但递归函数的返回值有时会出现意想不到的情况。 下面来举一个例子: >>> def fun(i): ... ...return i ... >>> r = fun(0) >>> print(r) 比如上面这段代码,乍一看没什么问题,但返回值并不是我们期望的 5,而是 None。...>>> print(r) None 要解决这个问题也简单,就是在执行递归调用的时候,加上 return 语句。 修改之后的代码如下: >>> def fun(i): ... ...---- 推荐阅读: 计算机经典书籍 技术博客: 硬核后端开发技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。...面试题汇总: 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

1.5K00

【Python】函数 ④ ( 函数 None 返回值 | None 值应用场景 | 用于 if 判断 | 定义无初始内容变量 | 代码示例 )

一、函数 None 返回值 1、空返回值 在 Python 函数中 , return 返回值是可选的 , 函数可以没有返回值 ; def 函数名(函数参数): """函数文档字符串(可选)"""...# 函数体 # return 返回值 (可选) Python 函数中没有显示定义返回值 , 那么返回的就是 特殊字面量 None , 其类型是 ; None...表示没有实际意义 , 返回空 , 不需要处理返回值信息 ; Python 中返回 None 相当于 Java / C / C++ 中的 void Kotlin 中的 Unit 等 空返回值 ; 2、代码示例...- 接收 None 返回值 下面的代码中 , hello 函数没有使用 return 关键字 返回 返回值 ; 该 hello 函数 没有显示定义 返回值 , 实际上该函数返回的是 None 返回值...None 二、None 值应用场景 ---- 1、None 值应用场景简介 函数 None 返回值应用场景 : 函数返回值 : 表示函数没有返回值 ; 用于 if

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 函数为什么会默认返回 None?

    Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。...return 语句,但是在函数调用后,都能取到一个返回值。...不管有没有写 return,它们都会执行 return 的逻辑,而且默认的返回值就是 None。 那么,问题来了:Python 的函数为什么能默认返回 None 呢?它是如何实现的呢?...答案就在解释器中,当 CPython 解释器执行到函数的最后一个代码块时,若发现没有返回值,它就会主动地加上一个 Py_None 值返回(出自:compile.c): 也就是说,如果定义的函数没有返回值...那么,这就会引出新的问题:Python 为什么要求函数都要有返回值呢?为什么它不像某些语言那样,提供一个 void 关键字,支持定义无返回值的空函数呢?

    2.9K40

    Python 函数返回值别漏标!显式声明 None 的 3 大好处

    Python 函数返回值别漏标!...显式声明 None 的 3 大好处很多刚写 Python 的朋友,甚至有些老开发者,都会犯一个 “不起眼” 的错:函数明明没有返回值(比如只做打印、保存数据这类操作),却不明确标注返回None。...一、先搞懂:Python 函数的 “隐式返回 None”在讲好处之前,得先明确一个基础知识点:Python 里所有函数都有返回值。...如果函数里没写return语句,或者只写了return(没带值),Python 会自动让它返回None。比如这 3 个函数,实际返回值都是None,效果完全一样:# 1....从现在开始,写 Python 函数时:如果函数没返回值(只做操作),就加上-> None;看到标了-> None的函数,别赋值用;用mypy这类工具辅助检查,让代码更规范。

    26310

    返回json & 通用返回值设计 | SpringMVC系列第8篇

    目前比较流行前后端分离,后端只需为前端提供 restfull 接口,所有的接口都返回 json 格式的数据,前端接收到 json 数据之后再进行处理。...此时只需要在这个方法上面添加一个@ResponseBody注解,SpringMVC 发现这个方法上有@ResponseBody这个注解,并且方法返回值是一个普通的 java 对象的时候,会将方法的返回值使用...4、restfull 接口通用返回值 客户端调用服务器端接口的时候,接口有可能会发生异常,这些异常信息需要返回给调用者,通常我们会为错误定义错误码以及提示信息。...一般我们会定义通用的返回值类型,格式如下: /** * rest接口通用返回值数据结构 * @param */ public class ResultDto { //接口状态(成功还是失败.../> 掌握通用接口返回值的用法

    75640

    Python .get 嵌套 JSON 值

    对于长期使用python写代码的我来说,经常在Python代码中,使用.get方法来访问嵌套在JSON结构中的值。...我们知道JSON(JavaScript Object Notation)是一种常见的数据交换格式,它可以包含嵌套的键值对。但是在我们使用总该如何获取嵌套对象中的值呢?...1、问题背景在 Python 中,可以使用 .get() 方法从 JSON 对象中获取值。当 JSON 对象中嵌套了其他 JSON 对象时,如何获取嵌套对象中的值呢?...2、解决方案但是,如果 JSON 对象中的嵌套对象不是直接使用键值对表示,而是使用数组表示,则获取嵌套对象中的值就会变得更加复杂。...请注意,第二个参数是.get方法的默认值,如果指定键不存在,则返回这个默认值。

    1K10

    【Python】函数 ③ ( 函数返回值定义语法 | 函数返回多个返回值 | 代码示例 )

    一、函数返回值定义语法 在 Python 函数中 , 通过 return 关键字 , 可以返回一个结果给调用者 , 这个返回结果就是 函数返回值 ; def 函数名(函数参数): """函数文档字符串..., 可以使用元组(tuple)或者列表(list)存储返回值 , 并将其赋值给一个变量 , 下面的代码 , 就是在函数中 , 返回了两个值 , """ 函数返回值示例 """ # 定义返回多个返回值的函数...(1, 2) 执行结果 : (1, 2) 三、函数返回值代码示例 ---- 在下面的代码中 , 返回了一个返回值 , 使用 sum 变量接收了这个返回值 , 最终将返回值打印出来 ; 代码示例 :...""" 函数返回值示例 """ # 定义函数, 并设置函数返回值 def add(a, b): return a + b # 接收函数返回值 sum = add(1, 2) # 打印函数返回值...print(f"函数返回值为 {sum}") 执行结果 : 函数返回值为 3

    3.2K20

    3招降服Python数据中的None值

    只要和数据打交道,就不可能不面对一个令人头疼的问题-数据集中存在空值。空值处理,是数据预处理之数据清洗的重要内容之一。...Python 数据分析包 Pandas 提供了一些便利的函数,可以帮助我们快速按照设想处理、解决空值。 空值处理的第一招:快速确认数据集中是不是存在空值。...说到空值,在 NumPy 中定义为: np.nan,Python 中定义为 None,所以大家注意这种表达方式。...这里面有一个坑,就是 Pandas 对象某列或某行,直接拿 np.nan , None 判断元素是否为空,发现返回的都是False。注意:这样做是不可取的!...---- 推荐阅读: 15个Python数据分析函数 为人要厚道,做事凭良心。悟天道酬勤,自信:心怀美好,美好即至。近日,细分微信群,仅一步操作,寻与汝同行之人,邀您加入!

    1.5K30

    python基础----函数作为返回值

    从一个例子讲起 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。...解决方法是:将函数作为返回值返回,不返回结果只返回函数 解决方法代码: def lazy_sum(*args): def sum(): ax = 0 for n...sum这个函数并没有返回函数计算得到的值 可以这样调用: >> f() >> 22 此时才是真正的计算出函数值; 闭包 我们在函数lazy_sum中又定义了函数sum,并且,内部函数sum可以引用外部函数...等到3个函数都返回时,它们所引用的变量i已经变成了3,因此最终结果为9; 返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。 如果一定要引用循环变量怎么办?...方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变: >>> def count(): ... fs = [] ...

    1.5K50

    python之函数的返回值

    下面我们来介绍一下python的函数返回值相关内容。 ---- 二、函数的返回值 函数并非总是直接输出数据,它还可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。...在Python中,函数使用return语句返回值。 return语句用来退出函数并将程序返回到函数被调用的位置继续执行。 return语句可以同时返回0个、1个或多个结果给函数被调用处的变量。   ...def minimal(x, y): # 自定义计算较小值函数 if x > y: # 如果x>y成立,返回y的值 return y else: # 否则返回x的值...在这里插入图片描述   如果函数没有return语句,Python将认为该函数以return None结束,即返回空值。函数也可以用return语句返回多个值,多个值以元组类型保存。   ...在这里插入图片描述 ---- 三、参考 1、廖雪峰的官网 2、python官网 3、Python编程案例教程 ---- 四、总结   以上就是就是关于Python的函数返回值相关知识,可以参考一下,觉得不错的话

    3.1K30

    Python 注解+参数+返回值小结

    我先说一下什么是注解,就是参数类型的显化操作,而且会给Python赋予一些静态语言的特性。 ?...NoReturn: print(msg) def get_msg(msg:str,func:Callable[[str],NoReturn])->NoReturn: # 需要将参数类型和返回值的类型都注解出来...就反正好像是道生一,一生三,三生万物 里面的一 from typing import NoReturn def show()->NoReturn: print("Test NoReturn") 当我们的返回值啥也没有的时候...的强大能力,提前写好参数列表 a:int=123 b:str='hello' # 变量类型的注解 def add(x:int,y:int)->int: return x+y add(1,2) ->是返回值的注解类型...,一个函数的只能有一个return结果,而且可以使用分支语句来控制,还有就是如果没有return语句,其实还是会返回一个return(None)

    1.3K30

    python 编程 函数的返回值

    前言 本章将会讲解Python编程的返回值,以及它的值定义。 一.函数 1.函数的返回值介绍 当两个函数之间,想要互相使用到内部变量时,就可以应用到函数的返回值。  ...2.函数的返回值定义 使用 return 关键字返回内容 将内容 返回到 函数调用处 函数体中没有 return 语句时,函数运行结束, 则默认返回 None,也被称为隐含返回值 例子:...,默认返回值为None #将c_t返回到该函数的调用处 return c_t #定义华氏度函数 def f_temp(c_t): f_t = round( c_t/1.8 +...'__main__': #注意1:函数在定义完之后,统一在最后去调用 c_t_two = c_temp() f_temp(c_t_two) #实参 3.函数多个返回值...当执行函数体内代码时,遇到第一个 return 就将指定值返回到函数调用处,也就是执行到 return这行代码,后面的都不执行了。

    89730

    让Laravel API永远返回JSON格式响应的方法示例

    / / json格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。...JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。...本文将给大家详细介绍关于让Laravel API永远返回JSON格式响应的方法,下面话不多说了,来一起看看详细的介绍吧 当你在编写完全为 API 服务的 Laravel 应用时,你希望所有响应都是 JSON...下面这个简单的方案,可以让你的 Laravel 应用优先响应为 JSON 格式。...现在所/ /有的响应都是 application/json ,包括错误和异常。

    3.9K10
    领券