Python 函数返回值的示例代码

0x 00 返回值简介

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

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

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

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

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

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

指定 return 返回值函数举例:

def showplus(x):
  print(x)
  return x + 1

num = showplus(6)
add = num + 2
print(add)

输出结果:
6
9

隐含 return None 举例:

def showplus(x):
  print(x)

num = showplus(6)
print(num)
print(type(num))

输出结果:
6
None
<class 'NoneType'>

0x 02 return 语句位置与多条 return 语句

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

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

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

如果有必要,可以显式调用 return None 明确返回一个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

0x 03 返回值类型

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

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

return 1,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'>    #默认封装成元祖类型

0x 04 函数嵌套

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

内部函数不能被外部直接调用,会抛异常 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使用threading获取线程函数返回值的实现方法

    threading用于提供线程相关的操作,线程是应用程序中工作的最小单元.python当前版本的多线程库没有实现优先级.线程组,线程也不能被停止.暂停.恢复.中断. threading模块提供的类:  Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local. threading 模块提供的常用方法: threading.currentThread(): 返回当前的线程变量. threading.enumera

  • python读取oracle函数返回值

    在oracle中创建一个函数,本来是想返回一个index table的,没有成功.想到文本也可以传输信息,就突然来了灵感,把返回值设置文本格式. 考虑到返回数据量可能会很大,varchar2类型长度吃紧,于是将返回值类型设置为clob.  我是用scott用户的测试表emp,这个是函数定义情况: create or replace function test_query_func(dept varchar2) return clob is type test_record is record (

  • Python 详解基本语法_函数_返回值

    Python 详解基本语法 概要: 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作.可以说是函数的返回值令函数与函数之间,函数与主程序之间更加紧密的联系起来. 函数的返回值 在Python的函数中都有一个返回值,默认为None.也可以使用return value语句来定义一个且只能定义一个可为任意类型的返回值.但是我们能够返回一个序列类型的对象,来实现返回多个值的效果. Example: 返回一个Lis

  • python中闭包Closure函数作为返回值的方法示例

    前言 首先看看闭包的概念:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数.这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外.所以,闭包是由函数和与其相关的引用环境组合而成的实体. 一.函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. >>> def lazy_sum(*args): ... def sum(): ... ax = 0 ... for n in args: ...

  • Python中用函数作为返回值和实现闭包的教程

    函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数! def lazy_sum(*args): def sum(): ax = 0 for n in args:

  • python在回调函数中获取返回值的方法

    python中有用到回调函数的时候,而回调函数又需要返回数值的时候,就需要先将所被传为回调函数的函数先赋值给一个变量,然后等回调结束之后,将这个变量取值回来就可以了. 如我用到到的调用xmlreader时,传入的一个函数需要取回返回值的代码: # 创建一个 XMLReader parser = xml.sax.make_parser() # turn off namepsaces parser.setFeature(xml.sax.handler.feature_namespaces, 0) #

  • Python函数返回值实例分析

    本文实例讲述了Python的函数返回值用法.分享给大家供大家参考.具体分析如下: 最近学一些Python的基本用法,看到定义函数,发现似乎只能返回一个返回值,想想matlab里返回多个返回值多方便啊,网上查了查,看到有返回多个值的方法.   python 函数返回值有两种形式: 1 返回一个值. 2 返回多个值.   现看看返回一个值的吧. def firstvalue(a,b): c = a + b return c print firstvalue(1,2) #结果:3 再看看返回多个值的:

  • Python 函数返回值的示例代码

    0x 00 返回值简介 回顾下,上一节简单介绍了函数及其各种参数,其中也有简单介绍 print 和 return 的区别,print 仅仅是打印在控制台,而 return 则是将 return 后面的部分作为返回值作为函数的输出,可以用变量接走,继续使用该返回值做其它事. 函数需要先定义后调用,函数体中 return 语句的结果就是返回值.如果一个函数没有 reutrn 语句,其实它有一个隐含的 return 语句,返回值是 None,类型也是 'NoneType'. return 语句的作用:

  • python实现多线程并得到返回值的示例代码

    目录 一.带有返回值的多线程 1.1 实现代码 1.2 结果 二.实现过程 2.1 一个普通的爬虫函数 2.2 一个简单的多线程传值实例 2.3 实现重点 四.学习 一.带有返回值的多线程 1.1 实现代码 # -*- coding:utf-8 -*- """ 作者:wyt 日期:2022年04月21日 """ import threading import requests import time urls = [ f'https://www.

  • mybatis 调用 Oracle 存储过程并接受返回值的示例代码

    目录 存储过程 mapper.xml dao层 调用 存储过程 PROCEDURE P_TEST_MYBATIS(iv_ins1 IN VARCHAR2, --id iv_ins2 IN VARCHAR2, --no ov_res OUT number --提示信息 ) IS BEGIN ov_res := 0; select count(1) into ov_res from jc_zhiydoc t where t.zhiy_id = iv_ins1 and t.zhiy_no = iv_i

  • js函数返回多个返回值的示例代码

    复制代码 代码如下: var w = getClientSize().width; var h = getClientSize().height - 97; 复制代码 代码如下: function getClientSize() { var a = h = 0; if (window.innerHeight) { a = window.innerWidth; h = window.innerHeight } else { if (document.documentElement && do

  • 怎么通过onclick事件获取js函数返回值(代码少)

    具体过程不做详细叙述,直接上代码: 写一个弹出框,绑定onclick事件是好像控制不了它的返回值.代码如下 function createBtn(){ for(var i = 0; i < _this.btn.length; i++){ var btn = document.createElement('span'); btn.id = 'btn_' + i; btn.innerHTML = _this.btn[i]; btn.style.padding = '5px 15px'; btn.st

  • Python函数返回不定数量的值方法

    Python的函数是可以return多个值的,但其本质上还是返回单个值,只是利用了tuple的自动打包,将多个值打包成单个tuple返回. 使用代码验证: def func_a(): return 1, 2, 3, 4 if __name__ == '__main__': temp = func_a() print(type(temp)) 运行结果,确认返回的是一个tuple, <class 'tuple'> 稍微修改代码: def func_a(*args): return 1, 2, 3,

  • 解决使用python print打印函数返回值多一个None的问题

    根本原因: python定义函数时,一般都会有指定返回值,如果没有显式指定返回值,那么python就会默认返回值为None 我们输入的代码如下: def test(): print('aaa') print(test()) 相当于执行了: def test(): print('aaa') return None print(test()) 如果不想要有None,那么就要添加返回值 def test(): return 'ccc' print(test()) 补充知识:python中如何实现pri

  • Python中return函数返回值实例用法

    在学习return函数时候,还是要知道了解它最主要的函数作用,比如,怎么去实现返回一个值,另外还有就是我们经常会用到的使用return能够进行多值输出,这才是我们需要抓住知识的重点,针对上述所提及的内容,都可以来往下看文章,答案都在文章内容获取哦~ return 添加返回值 return 显示返回对象 返回值接受:value = func() 例子:计算学成最高分 listv = [90,80,88,77,66] # 分数计算return高分 def scoreCalculate(values)

随机推荐