Python中的函数

Posted 来自蓝星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的函数相关的知识,希望对你有一定的参考价值。

一、Python函数定义

Python定义函数使用def语句,定义格式如下:

def function_name(parameter):

    " 函数说明"  #函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明

    函数体

函数的返回值用return语句返回

注意:1、函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回

           2、如果没有return语句,函数执行完毕后也会返回结果,只是结果为None

           3、Python函数支持返回多个值,返回多个值时其实返回一个tuple

示例如下:

import math
def move(x,y,step,angle):
nx=x+step*math.cos(angle)
ny=x+step*math.sin(angle)
return nx,ny

x,y=move(100,100,60,math.pi/6)
print x,y
r=move(100,100,60,math.pi/6)
print r[0],r[1]

结果如下:

151.961524227 130.0
(151.96152422706632, 130.0)

二、Python函数定义默认参数

Python函数定义时,可默认参数,调用函数传参数时传必要的参数,需要的时候再传额外的参数覆盖默认参数值

由于函数从左往右顺序匹配,所有默认参数要定义在必需参数的后面

示例如下:

def greet(str="World"):
print "Hello,"+str

greet()
greet("Bart")

结果如下:

Hello,World
Hello,Bart

三、Python函数定义可变参数

有时需要函数能接受任意个参数,也就是不定长参数,可以定义一个可变参数,定义可变参数后,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数

示例如下:

def average(*args):
if len(args)==0:
return 0
if len(args)>=0:
sum=0
for i in args:
sum+=i
return float(sum)/len(args)

print average()
print average(1,2)
print average(1,2,3,4)

 结果如下:

0
1.5
2.5

四、Python函数定义关键字参数

Python使用关键字参数允许函数调用时参数的顺序与声明时不一致,Python解释器能够用参数名来匹配参数值

示例如下:

 

def printinfo(name,age):
print "name:",name
print "age:",age

printinfo(age=18,name="Mali")

结果如下:

name: Mali
age: 18

五、Python匿名函数

python使用lambda来创建匿名函数

lambda函数语法:

lambda [arg1[,arg2,arg3,...]]:表达式

注意:1、lambda只是一个表达式,函数体比def简单很多

           2、lambda的主体只是一个表达式,而不是代码块,lambda能封装的逻辑有限

           3、lambda函数拥有自己的命名空间,不能访问自有参数列表之外或全局命名空间里的参数

示例如下:

 

sum=lambda x,y:x+y
print sum(1,2)

结果如下:

3

六、参数传递

Python函数的参数传递:

不可变类型:类似c++的值传递,如整数、字符串、元组

可变类型:类似c++的引用传递如列表、字典

 

以上是关于Python中的函数的主要内容,如果未能解决你的问题,请参考以下文章

Python中的基本函数及其常用用法简析

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

Python函数

Python代码阅读(第38篇):根据谓词函数和属性字符串构造判断函数

13 个非常有用的 Python 代码片段

python使用上下文对代码片段进行计时,非装饰器