Python之函数返回值的示例代码详解

  文中通过示例代码介绍的非常详细,下面我们一起来看一下吧。

0x  00返回值简介

  回顾下,上一节简单介绍了函数及其各种参数,其中也有简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将return后面的部分作为返回值作为函数的输出,可以用变量接走,继续使用该返回值做其它事。

函数需要先定义后调用,函数体中return语句的结果就是返回值。如果一个函数没有reutrn语句,其实它有一个隐含的return语句,返回值是None,类型也是'NoneType'。

return语句的作用:结束函数调用、返回值

0x   01指定返回值与隐含返回值

函数体中return语句有指定返回值时返回的就是其值

函数体中没有return语句时,函数运行结束会隐含返回一个None作为返回值,类型是NoneType,与return、returnNone等效,都是返回None。

指定return返回值函数举例:

def showplus(x):

print(x)

return x + 1

num = showplus(6)

add = num + 2

print(add)

输出结果:

6

9

隐含returnNone举例:

def showplus(x):

print(x)

num = showplus(6)

print(num)

print(type(num))

输出结果:

6

None

<class 'NoneType'>

0x02return语句位置与多条return语句

python函数使用return语句返回"返回值",可以将其赋给其它变量作其它的用处

所有函数都有返回值,如果没有return语句,会隐式地调用returnNone作为返回值

一个函数可以存在多条return语句,但只有一条可以被执行,如果没有一条reutrn语句被执行,同样会隐式调用returnNone作为返回值

如果有必要,可以显式调用returnNone明确返回一个None(空值对象)作为返回值,可以简写为return,不过python中懒惰即美德,所以一般能不写就不写

如果函数执行了return语句,函数会立刻返回,结束调用,return之后的其它语句都不会被执行了

举例1:

def showplus(x):

print(x)

return x + 1

print(x + 1) #该语句会执行么

print(showplus(6))

输出结果:

6

7

举例2:

def showplus(x):

print(x)    # 5

return x + 1  # 6

return x + 2  # 该语句也不会被执行

print(showplus(5))

输出结果:

5

6

举例3:

def guess(x):

if x > 3:

return "> 3"

else:

return "<= 3"

print(guess(10))

print(guess(2))

输出结果:

> 3

<= 3

举例4:

# for .. else .. 语句 (意外终止情况)

# 表示如果 for 语句段的内容正常循环结果才会执行 else 段的语句,如果 for 在循环过程中时被 break 或者 return 语句意外终止循环,就不会执行 else 段中的语句。

def fn(x):

for i in range(x):

if i > 4:

return i

else:

print("{} is not greater than 4".format(x))

print(fn(3))

print(fn(6))

返回结果:

is not greater than 4

None

0x03返回值类型

无论定义的是返回什么类型,return只能返回单值,但值可以存在多个元素。

return[1,3,5]是指返回一个列表,是一个列表对象,1,3,5分别是这个列表的元素

return1,3,5看似返回多个值,隐式地被Python封装成了一个元祖返回

举例1:

def fn():

return 3  #单值时,返回的是什么类型

print(fn())

print(type(fn()))

输出结果:

<class 'int'>    #int 整数类型

举例2:

def showlist():

return [1,3,5]  #多元素,返回的是什么类型

print(type(showlist()))

print(showlist())

输出结果:

<class 'list'>

[1, 3, 5]    #列表类型

举例3:

def showlist():

return (2,4,6)  #多元素,返回的是什么类型

print(type(showlist()))

print(showlist())

输出结果:

<class 'tuple'>    #元祖类型

(2, 4, 6)

举例4:

def showlist():

return 2,4,6  #多值时,不指定类型

print(type(showlist()))

print(showlist())

输出结果:

<class 'tuple'>    #默认封装成元祖类型

0x04函数嵌套

函数有可见范围(内外可见关系),这就是作用域的概念。

内部函数不能被外部直接调用,会抛异常NameError。

举例1:

def outer():

def inner(): #可以理解为内部函数

print("inner")

print("outer")

outer()

输出结果:

outer

此时如果调用outer(),只会执行print("outer"),因为inner虽然在outer函数内,但它也是一个函数,函数如果要调用,就必须用'函数名()'方式。

举例2:

def outer():

def inner():

print("inner")

print("outer")

inner()  #外部无法引用内部函数,内部函数只在本地作用域有效

输出结果,抛出异常:

Traceback (most recent call last):

File "C:/python/return_value.py", line 6, in <module>

inner()

NameError: name 'inner' is not defined

举例3:

def outer():

def inner():

print("inner")

print("outer")

inner()

outer()

输出结果:

outer

inner

此节介绍了函数的返回值、返回值的作用,指定与不指定返回值时的不同,返回值类型,以及函数嵌套时返回值的使用。

(0)

相关推荐

  • Python 为什么引入这两个关键词

    啥是 global 和 nonlocal Python 支持的关键词里,global 和 nonlocal 初学者接触的少,不知道是做什么用的:一些人虽然知道它们的作用,但对为什么要引入这两个关键词则 ...

  • 说说Python中闭包是什么?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • UC头条:在Python中使用Lambda函数的5种用法

    引言 Lambda 函数(也称为匿名函数)是函数式编程中的核心概念之一. 支持多编程范例的 Python 也提供了一种简单的方法来定义 lambda 函数. 用 Python 编写 lambda 函数 ...

  • 初识装饰器函数

    我之前看装饰器文章介绍,很少有用 装饰器函数这种称谓的.但是今天大邓简单的学了下装饰器,觉得应该先让大家知道装饰器是一种函数,让大家从熟悉的函数去学习装饰器.大邓姑且草率的将其称呼为 装饰器函数 装饰 ...

  • python - 内置对象 之 变量

    一.变量命名规划 1.命名规则 (1)命名内容只能是字母.下划线.数字 (2)名字第1字符只能是字母或下划线 (3)区分大小写 2.私有变量 (1)_xxx "单下划线" 开始的成 ...

  • 一文看懂Python系列之装饰器(decorator)(工作面试必读)

    Python的装饰器(decorator)可以说是Python的一个神器,它可以在不改变一个函数代码和调用方式的情况下给函数添加新的功能.Python的装饰器同时也是Python学习从入门到精通过程中 ...

  • Shell $?:获取函数返回值或者上一个命令的退出状态

    最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误) $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值 ...

  • C# ODP.NET 调用Oracle函数返回值时报错的一个解决方案

    有人在社区问到:C#调用Oracle中自定义函数的返回值时,无法正常调用.但在PL/SQL中正常调用返回. 于是动手一试: 1.准备函数(Oralce 11g.2.0.0.4) CREATE OR R ...

  • excel定位引用公式视频: 使用match函数返回值方法定位单元格

    excel定位引用公式视频|match函数使用方法视频|match定位单元格视频|match函数返回值视频 本视频教程由部落窝教育分享.

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

    这篇文章偏记录类型,不是写的很细.我先说一下什么是注解,就是参数类型的显化操作,而且会给Python赋予一些静态语言的特性. User = strAge = int Answer = str # 其实 ...

  • 代码详解:Python正则表达式的终极使用指南

    全文共8032字,预计学习时长16分钟 处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. ...

  • 多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!

    老马的程序人生 前天 以下文章来源于早起Python ,作者陈熹 早起Python点击领取Python数据处理200题 前言 大家好,在之前的十几篇办公自动化系列文章中,我们大多是以真实的案例需求来讲 ...

  • python采集数据的几种途径_详解

    工程师小C的小店 Python编程三剑客:Python编程从入门到实践第2版+快速上手第2版+极客编程(套装共3册) 作者:[美] 埃里克·马瑟斯(Eric Matthes) 出版社:人民邮电出版社 ...

  • 【视频】Excel函数每日一讲(47):详解roundup、rounddown函数算停车收费

    以上视频的所有教学内容,选自教材<玩转Office轻松过二级>(第3版) 书上包含所有方法.技巧.题目,可以自己看书自学. 字都认识,为啥要让别人念呢? 选自本书第9章前言 公式和函数,E ...

  • selenium+python自动化93-鼠标事件(ActionChains)源码详解

    ActionChains简介 actionchains是selenium里面专门处理鼠标相关的操作如:鼠标移动,鼠标按钮操作,按键和上下文菜单(鼠标右键)交互. 这对于做更复杂的动作非常有用,比如悬停 ...