Python基础学习记录(5/12)——函数与Lambda表达式

函数与Lambda表达式

 

一、函数

  • Python提供具有强大功能内置函数以及可以自己编写的自定义函数
     
     

1. 内置函数

  • 内置函数(BIF)是Python自身提供的,其使用方法可以通过help(函数)来获得,输入后,Python会提供相关使用说明
     

2.自定义函数

(1)相关定义
  • 使用def()语句
def self_func(parameter)
	pass
	return(表达式或值)
  • 可以使用pass语句作为占位符,实现空函数
  • return返回值,若不写return则返回none
  • 默认参数:给某些参数设置默认值,当过程为赋值时,使用默认值。
  • 位置参数:按位置顺序传递参数;
  • 可变参数:传入的参数个数是可变的,装成元组,用*来表示,个数可以是0,1,2,……
  • 关键字参数:用**表示,个数可以是0,1,2,……自动组装成字典
  • 命名关键词参数:例如func(n,*,a,**b) *,a是命名关键词参数
  • 各种参数的顺序位置参数-默认参数-可变参数-命名关键字参数-关键字参数
def myfunc(name,ID,age=20,*others,**otherss)#name和ID是位置参数,age是默认参数,*other是可变参数,**是关键词参数
	name=input("输入姓名:")
	……
	sentence="{0}的年龄和ID分别是{1}和{2}".format(name,ID,age)
	return(sentence)

 
 

(2)局部变量与全局变量
  • 当内部作用域想修改外部作用域的变量时,就要用到globalnonlocal来声明了。
a=1
def func1(a,b)
	global a
	return(a+b)

 
 

(3)内嵌函数与闭包
  • 闭包:如果在一个内部函数里引用外层非全局变量,那么内部函数就被认为是闭包。
  • 修改闭包作用域中的变量需要 nonlocal 关键字
#内嵌函数
def outfunc(x):
	print("out"*x)
	y=x+1
	def innerfunc(y):#innerfunc()是一个闭包
		print("innerfunc"*y)
	innerfunc(y)

>>>outfunc(2)
outout
innerfuncinnerfuncinnerfunc

 
 

(4)递归
  • 定义:函数调用自身的过程
#典例:斐波那契数列
def fibo(num):
	if num <= 1:
		return num
	return fibo(num - 1) + fibo(num - 2)

>>> fibo(1)
1
>>> fibo(6)
8

 
 
 

二、lambda函数(匿名函数)

  • 表达式 lambda 参数: expression
square = lambda x : x**2

>>> square(2)
4

 
 

  • 可以与filter()和map()连用
    filter(function, iterable) 过滤序列,过滤掉不符合条件的元素
    map(function, iterable, …) 根据提供的函数对指定序列做映射。
#过滤
small = lambda x: x<100
list1 = random.sample(range(1,1000),20)
slist = filter(small, list1)

>>> print(list(slist))
[94, 7, 8]

#map
map1 = map(lambda x: x+100, list1)

>>> print(list(map1))
[194, 983, 413, 717, 318, 475, 884, 602, 406, 1037, 861, 107, 798, 691, 386, 359, 108, 857, 965, 422]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值