Python基本语法_函数_返回值

目录

  • 目录
  • 前言
  • 函数的返回值
  • 在函数中Return和Print的区别
  • 函数中的文档

前言

函数的返回值是函数重要的组成部分。函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作。可以说是函数的返回值令函数与函数之间,函数与主程序之间更加紧密的联系起来。

函数的返回值

在Python的函数中都有一个返回值,默认为None。也可以使用return value语句来定义一个且只能定义一个可为任意类型的返回值。但是我们能够返回一个序列类型的对象,来实现返回多个值的效果。
Example:
返回一个List

In [11]: %pycat reTest.py
#!/usr/bin/env python
def testReturn(input1,input2):
    sum = input1 + input2
    return [sum,input1,input2]

calculation = testReturn(1,2)
x,y,z = testReturn(1,2)
print calculation
print x
print y
print z

In [12]: run reTest.py
[3, 1, 2]
3
1
2

在函数中Return和Print的区别

很多初学者会混淆两者间的区别,总的来说:return返回值并结束函数,而print仅仅是打印输出。下面一个例子:

In [25]: %pycat reTest.py
#!/usr/bin/env python
def testReturn(input1):
    for i in range(input1):
        return i

def testPrint(input1):
    for i in range(input1):
        print i

n = 3
value1 = testReturn(n)
print 'testReturn return value = %s' % value1 

print '*'*15

value2 = testPrint(n)
print 'testPrint return value = %s' % value2

In [26]: run reTest.py
testReturn return value = 0
***************
0
1
2
testPrint return value = None

上面例子可以很明显的看见两者间的区别。
return:调用函数后,return将 0 返回并赋值给value1,同时结束函数。所以只能返回 0 。
print :循环将 0 1 2 全部打印出来,但是因为函数没有return语句定义的返回值,所以返回默认None并赋值给value2 。

函数中的文档

顺便介绍一下函数的文档,Python函数的文档在函数定义语句的下一行中使用"""Document"""来定义,并且使用functionName.__doc__来打印函数的文档信息。
Example:
查看一个内置函数的文档

In [12]: number = 123

In [13]: number.__add__.__doc__
Out[13]: 'x.__add__(y) <==> x+y'

可以看见函数的文档是一个非常有用的东西,清晰简明的文档可以使人很快的掌握一个函数的用法。

Jmilk

时间: 2024-09-20 06:32:04

Python基本语法_函数_返回值的相关文章

关于python函数递归返回值的问题

问题描述 关于python函数递归返回值的问题 这是一个匹配字典中词语的函数. 按理说已经匹配成功了 在return之前加个print 输出结果是对的 但是在外面调用输出来就是None 不知道为什么 求大神!! def find_word(dictionary,word): if word in dictionary: return word else: if len(word)-1 == 0: return word else: word = word[0:len(word)-1] find_

王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包

转载请注明出处:王亟亟的大牛之路 本来打算把工作的事周末做掉点,但是发现在外面浪并不能迅速集中投入,为了避免不必要的BUG 还是明天在家做吧,那么久写一篇Python的文章吧,毕竟背着Mac出门不做些太对不起自己的肩膀了 废话不多,直接说内容,这篇文章的内容大致是围绕"闭包"走的,介绍下相关理论知识 作用域:对象有其存活的范围 闭包:内部函数可以引用外部函数的参数和局部变量(是不是听得云里雾里的,没事 看例子就明白了) 就像循环内声明的对象,除了循环也就无法获取他的值一样.就像在jav

VBS中InputBox函数的返回值使用技巧_vbs

如果用户单击确定或按下 ENTER,则 InputBox 函数返回文本框中的内容.如果用户单击取消,则函数返回一个零长度字符串 (""). 这是参考手册对InputBox函数返回值的说明,简单而明了,还有必要专门写一篇文章来讨论?我知道你一定对标题不屑一顾,换成是我,我也一定会不屑一顾,如果我没有看到百度VBS吧里的一个帖子. 关于Inputbox 疑惑 ---------------------------- 如果用户单击确定或按下 ENTER,则 InputBox 函数返回文本框中

对象的初始化-用函数的返回值初始化一个类对象,这其中用了几次复制构造函数

问题描述 用函数的返回值初始化一个类对象,这其中用了几次复制构造函数 这是我自己写的一段代码#includeusing namespace std;class Example{int num;public:Example(int i){num=i;cout<<""This is construction with parameter.n"";}Example(){num=0;cout<<""This is construc

简单介绍如何使用PowerMock和Mockito来mock 1. 构造函数 2. 静态函数 3. 枚举实现的单例 4. 选择参数值做为函数的返回值(转)

本文将简单介绍如何使用PowerMock和Mockito来mock1. 构造函数2. 静态函数3. 枚举实现的单例4. 选择参数值做为函数的返回值5. 在调用mock出来的方法中,改变方法参数的值 一点简要说明:Mockito其实已经可以满足大部分的需求,但是它的实现机制是使用cglib来动态创建接口的类的实例.但是这种实现方式不能用于构造函数和静态函数,因为那需要使用类的字节码(比如使用javassist). 所以我们才需要结合使用PowerMock. 1. mock构造函数, 如果有代码没有

引用 返回值-引用值作为函数的返回值的困惑

问题描述 引用值作为函数的返回值的困惑 /////////////////////////////////////////////////////// double array[5] = {100.1, 100.2, 100.3, 100.4, 100.5}; double cd = 5.2; double &change(int i) { return array[i]; } void TestConstReturnVaulefun() { int i; cout<<"原始

类中const函数的返回值问题

问题描述 类中const函数的返回值问题 我写了一个matrix类,其中定义了一个二维指针int **p用来表示这个矩阵,现在我需要些一个下标操作符的重载,但是他会报错. const int *&matrix::operator const { return p[n]; } 这个函数返回一个一维指针引用.但是我不知道错在哪儿了. 但是如果把返回引用改成返回一维指针本身,也就是如下所示,就没问题了.为什么呢??哪个大神来解释下. const int *matrix::operator const

c语言scanf()函数的返回值

问题描述 c语言scanf()函数的返回值 c primer plus 一书中,199页的showchar2.c程序中有一行代码是if(scanf("%d %d",&rows,&cols)!=2),请问这里的scanf函数返回值的是参数的个数吗? 解决方案 http://blog.csdn.net/21aspnet/article/details/174326 解决方案二: c语言scanf返回值c语言中 scanf() 和printf()的返回值C语言中的printf

json-jax rs如何通过调用函数的返回值来返回相应的http状态?

问题描述 jax rs如何通过调用函数的返回值来返回相应的http状态? 需要实现这样的一个功能,在web api里拿到前台传来的json数据,调用DAO方法将该存入数据库中,在web api中根据DAO方法的返回的状态(例如存储成功或者失败)返回相应的http状态.应该是return Response.ok(xxx).build(); 是吗 那里面的xxx是DAO方法吧,那相应的DAO方法应该返回什么呢? 解决方案 顶啊............................ 解决方案二: 顶