函数是组织好的,可重复使用的,用来实现単一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率。内建函数比如print。用户可以自定义函数,以下是简单的规则:
-
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。 任何传入函数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
-
函数的第一行语句可以选择性地使用文档字符串——用于存放函数说明。 函数内容以 “ :”起始,并且缩进。
-
return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None.
1.函数定义
def sum(a,b):
return a+b+1
sum(4,5)
--> 10
#定义斐波那契数列
def fib(n):
a,b=1,1
for i in range(n):
print(a,end=" ") #让结果之间有空隙
a,b=b,a+b
print()
fib(5)
--> 1 1 2 3 5
2.默认参数
#函数默认参数
def info(name,age=35):
print("姓名",name)
print("年龄",age)
return
#调用info 函数
info(age=50,name="wang") #若不赋值,则返回初始值
info(name="wang")
-->姓名 wang
年龄 50
姓名 wang
年龄 35
3.变长参数函数
def info(arg1,*vartuple): #打印任何传入的函数,*收集功能
print("输出:")
print(arg1)
print(vartuple)
return
#调用info 函数
info(10)
info(70,60,50)
-->
输出:
10
()
输出:
70
(60, 50)
4.匿名函数
python 使用lambda 来创建匿名函数。
sum=lambda arg1,arg2 :arg1+arg2
#调用sum函数
print("相加得:",sum(10,20))
--> 相加得: 30
5.内置高阶函数
python中有很多非常实用的内建函数和高阶函
filter
filter()函数接收一个函 f 和一个list,这个函数f的作用是对每个元素进行判断,返回True或 False, fiter根据判断结果自动过滤掉 不符合条件的元素,返回由符合条件元素组成的新list。
#判断是否为正数
def is_positive(x):
return x> 0
result = filter(is_positive,[1,3,5,-1])
list(result)
--> [1, 3, 5]
map
map是 pthon 内置的高阶函,它接收一个函数f和一个list,并通过把函数f依次作用在list 的每个元素上,得到一个新的list 并返回。
#每个元素求平方
def f(x):
return x*x
result=map(f,[1,3,5,-1])
list(result)
--> [1, 9, 25, 1]
reduce
recuce函数也是Python内置的一个高阶函数。 reduce0函数接收的参数和map()类似,一个函数f,一个list,但行为和map()不同,reduce传入的函数f必须接收两个参数,reduce()对list的每个元素反调用函数f, 井返回最终结果值。
from functools import reduce #求和
def add(x,y):
return x+y
result=reduce(add,[1,3,5,-1])
print(result)