这一篇来介绍一下函数里面的一些东西
#函数参数 def name(name,age,sex): print(‘姓名: %s 年龄: %d 性别: %s‘ %(name,age,sex)) #必须参数 name(‘李白‘,100,‘公‘) #关键字参数 name(name=‘大废物‘,age=88,sex="哈麻皮") #默认参数 def pro(school,family,cos = ‘高一(1)班‘): print(school,family,cos) pro(‘华中师范大学附属中学‘,‘湖北襄阳‘,‘高三(5)班‘) #不定长参数 def le(name,*age): print(name,age) le(‘fi‘,18,‘shab1‘,999)
运行结果为:
姓名: 李白 年龄: 100 性别: 公 姓名: 大废物 年龄: 88 性别: 哈麻皮 华中师范大学附属中学 湖北襄阳 高三(5)班 fi (18, ‘shab1‘, 999)
函数的作用域分为四种情况:
L:local 局部作用域,即函数中定义的变量; E:enclosing 嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的
G:global 全局变量就是模块级别定义的变量; B:builtin 系统固定模块里面的变量,比如int,bytearray等
我们知道,在一个函数内部可以调用其他函数,如果一个函数在内部调用自己本身,那这个函数就是递归函数
例如:
#使用函数递归实现阶乘 def func(number): if number == 1: return 1 return number*func(number - 1) print(func(5)) #斐波那契数列的实现 def fibo_new(n): if n <= 1: return n return (fibo_new(n-1) + fibo_new(n-2)) print(fibo_new(3))
运行结果
120 2
def add(x,y): return x+y print(add(3,7)) print(‘*******************‘) #使用匿名函数 c = lambda x,y:x+y print(c(4,8))
运行结果:
10 ******************* 12
lambda表达式的语法结构如下;
lambda 参数:返回值
从lambda的语法格式我们可以看出它的几个要点:
1.lambda表达式必须使用lambda关键字定义
2.在lambda关键字之后,冒号左边是参数列表,可以没有参数,也可以有多个参数,如果有多个参数,则需要使用逗号隔开,
冒号右边是该lambda表达式的返回值\
lambda表达式使用起来更加方便,也可以是代码更加简洁,希望大家熟练掌握
原文:https://www.cnblogs.com/xy-l/p/11204323.html