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中的文件操作
Aug 28 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
python实现对输入的密文加密
Mar 20 Python
Python下简易的单例模式详解
Apr 08 Python
python机器学习实现决策树
Nov 11 Python
在matplotlib中改变figure的布局和大小实例
Apr 23 Python
如何理解Python中包的引入
May 29 Python
sklearn的predict_proba使用说明
Jun 28 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
python中子类与父类的关系基础知识点
Feb 02 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
PHP-MySQL教程归纳总结
2008/06/07 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
jQuery 使用个人心得
2009/02/26 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
js 调用百度分享功能
2017/02/27 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
python实现批量按比例缩放图片效果
2018/03/30 Python
python数据预处理方式 :数据降维
2020/02/24 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
小学生元旦感言
2014/02/26 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
表扬信范文
2015/05/04 职场文书
繁星春水读书笔记
2015/06/30 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书