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中执行DOS命令的3种方法总结
May 12 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
flask框架视图函数用法示例
Jul 19 Python
在Pycharm中使用GitHub的方法步骤
Jun 13 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
Python FtpLib模块应用操作详解
Dec 12 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
Tensorflow中的降维函数tf.reduce_*使用总结
Apr 20 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
python用海龟绘图写贪吃蛇游戏
Jun 18 Python
python 安全地删除列表元素的方法
Mar 16 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
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
Extjs 几个方法的讨论
2010/01/28 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
最基础的Python的socket编程入门教程
2015/04/23 Python
Python导入oracle数据的方法
2015/07/10 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
对Django url的几种使用方式详解
2019/08/06 Python
Django对models里的objects的使用详解
2019/08/17 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
linux面试题参考答案(3)
2012/09/13 面试题
校园达人秀策划书
2014/01/12 职场文书
出国签证在职证明
2014/01/16 职场文书
中学生差生评语
2014/01/30 职场文书
学生安全责任书范本
2014/07/24 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL