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通过装饰器检查函数参数数据类型的方法
Mar 13 Python
python中异常报错处理方法汇总
Nov 20 Python
Python 操作文件的基本方法总结
Aug 10 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
django中的HTML控件及参数传递方法
Mar 20 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
Python自动抢红包教程详解
Jun 11 Python
python覆盖写入,追加写入的实例
Jun 26 Python
Series和DataFrame使用简单入门
Nov 13 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
python套接字socket通信
Apr 01 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 md5下16位和32位的实现代码
2008/04/09 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
php截取中文字符串函数实例
2015/02/23 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
python实现linux下使用xcopy的方法
2015/06/28 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
python数据归一化及三种方法详解
2019/08/06 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
自我鉴定怎么写
2013/12/05 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
领导证婚人证婚词
2014/01/13 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
通知怎么写?
2019/04/17 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题