Python学习笔记---函数

函数的构成

  • 函数名称
  • 函数体
  • 关键字def
# 函数名 + 函数体 + 关键字def
def MyFirstFunction():
    print("把一切当作艺术")

函数文档

用于对函数解释说明(可以通过函数名.__doc__属性查看)

def MyFirstFunction(name):
	'name 为形式参数' 
    print("把一切当作艺术")

函数的参数

  • 普通参数
def sayHello(name,word):
    print("我叫"+ name)
    print("我的相信"+word)
  • 默认参数(关键字)
def sayHello(name="上帝",word="是我创造了世界"):
    print("我叫"+ name)
    print("我的相信"+word)
  • 可变参数*
# 可变参数的函数调用时候,一定用关键字参数 默认会把实参的个数都给可变参数
def test(*params,exp=7):
   print("函数参数的长度"+len(params))

局部变量和全局变量

作用区域不同
如果在函数内修改全局变量的值怎么办?
关键字global

内置函数与闭包


nonlocal关键字只能用于嵌套函数中,并且外层函数中定义了相应的局部变量,否则会发生错误。
def funx():
    x = 5
    def funy():
        nonlocal x # 如果要修改外部函数的变量需要关键字  我很奇怪赋值为什么不能直接赋值 而要非两步写
        x *= x
        return x
    return funy()
print(funx())

匿名函数-lambda表达式

通俗易懂的点 不愿意起名字就用这个,用完就被回收,但这种写法小白会头疼

# 关键字lambda 参数:表达式
g = lambda x:x+2
print(g(2))

两个常用内置函数配合匿名函数

  • filter(函数返回为true,可迭代对象)
  • map(函数,可迭代对象)
产生的奇数的数列 应用余数为1  1识别为True
list(filter(lambda x:x % 2,range(10)))
0~9的每个值加上2形成新的序列
list(map(lambda x:x+2,range(10)))

递归函数

特点
  1. 函数返回值为函数本身
  2. 有出口 否则死循环
def hannuota(n,x,y,z):
	if(n==1):
		print(x,"-->",z)
	else:
		#将n-1放在从x轴放到Y轴上
		hannuota(n-1,x,z,y)
		#将x轴最后一个放在Z上
		print(x,"-->",Z)
		#将Y轴上的n-1个从Y轴放在X上
		hannuota(n-1,y,x,z)
		
		
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值