Python return语句如何实现结果返回调用


Posted in Python onOctober 15, 2020

return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回

程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return。

要返回两个数值,写成一行即可:

def a(x,y):
  if x==y:
    return x,y
print a(3,3)<br><br>>>> 3,3

但是也并不意味着一个函数体中只能有一个return 语句,例如:

def test_return(x):
  if x > 0:
    return x
  else:
    return 0

函数没有 return,默认 return一个 None 对象。

递归函数中没有return 的情况:

def gcd(a,b):
   if a%b==0:
     return b
   else:
     gcd(b,a%b)

分析:else 中没有 return 就没有出口,这个程序是自己内部运行,程序没有返回值,

python 和 print 的区别:

x = 1
y = 2
def add (x, y):
z = x + y

return z
print (add(x,y)


x = 1
y = 2
def add (x, y):

z = x + y

print z
print (add(x,y))

在交互模式下,return的结果会自动打印出来,而作为脚本单独运行时则需要print函数才能显示。

默认情况下,遇见 return 函数就会返回给调用者,但是 try,finally情况除外:

def func(): 
  try: 
    print 98 
    return 'ok' #函数得到了一个返回值 
  finally: #finally语句块中的语句依然会执行 
    print 98 
 
print fun()

输出:

98
98
ok

函数作为返回值返回:

标签: python

def lazy_sum(*args):
  def sum():
    x=0
    for n in args:
      x=x+n
    return x
  return sum
lazy_sum(1,2,3,4,5,6,7,8,9) #这时候lazy_sum 并没有执行,而是返回一个指向求和的函数的函数名sum 的内存地址。
f=lazy_sum(1,2,3,4,5,6,7,8,9)
print(type(f))
print(f()) # 调用f()函数,才真正调用了 sum 函数进行求和,

这其实就是闭包。

返回一个函数列表:

def count():
  fs = []
  for i in range(1,4):
    def f():
      return i*i
    fs.append(f)
  return fs
f1, f2, f3 = count()
print(f1())
print(f2())
print(f3())
输出:
9
9
9

执行过程:

当i=1, 执行for循环, 结果返回函数f的函数地址,存在列表fs中的第一个位置上。

当i=2, 由于fs列表中第一个元素所指的函数中的i是count函数的局部变量,i也指向了2;然后执行for循环, 结果返回函数f的函数地址,存在列表fs中的第二个位置上。

当i=3, 同理,在fs列表第一个和第二个元素所指的函数中的i变量指向了3; 然后执行for循环, 结果返回函数f的函数地址,存在列表fs中的第三个位置上。

所以在调用f1()的时候,函数中的i是指向3的:

f1():
return 3*3

同理f2(), f3()结果都为9

闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。即包在里面的函数(本例为f()),不要引用外部函数(本例为count())的任何循环变量

如果一定要引入循环变量,方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:

def count():
  fs=[]
  for i in range(1,4):
    def f(j):
      def g():
        return j*j
      return g
    fs.append(f(i))
  return fs

f1,f2,f3=count()
print(f1())
print(f2())
print(f3())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现巡检系统(solaris)示例
Apr 02 Python
Python获取任意xml节点值的方法
May 05 Python
Python用threading实现多线程详解
Feb 03 Python
Python数据结构之栈、队列的实现代码分享
Dec 04 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
Python基础之常用库常用方法整理
Apr 30 Python
python用海龟绘图写贪吃蛇游戏
Jun 18 Python
python 进程池pool使用详解
Oct 15 #Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 #Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 #Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 #Python
matplotlib教程——强大的python作图工具库
Oct 15 #Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 #Python
详解pycharm配置python解释器的问题
Oct 15 #Python
You might like
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
PHP4实际应用经验篇(9)
2006/10/09 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
python写的一个文本编辑器
2014/01/23 Python
python解析html开发库pyquery使用方法
2014/02/07 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
python使用KNN算法识别手写数字
2019/04/25 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
松材线虫病防治方案
2014/06/15 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript
Python实现聚类K-means算法详解
2022/07/15 Python
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js