Python学习笔记-函数


'''
认识函数:在一个完整的项目中,某些功能会反复的使用,那么我们会将功能封装成函数
当我们要使用功能的时候直接调用函数即可

本质:函数就是对功能的封装

优点:
1、简化代码结构,增加了代码的重复使用的程度。
2、如果想修改某些功能或者调试某些BUG,只需要修改对应函数即可

定义函数:
格式:
def 函数名(参数列表):
    语句
    return 表达式

def:函数代码块以def关键字开始
函数名:遵循标志符规则
参数列表(参数1,参数2,。。。参数n):任何传入函数的参数的变量必须放在括号之间,
用逗号分隔,函数从函数的调用者那里获取信息
: 函数的内容以冒号开始,并且缩进
语句:函数封装的功能
return:一般用于结束函数的,并返回信息给函数的调用者
表达式:即为要返回给函数调用者的信息
注意:最后的return表达可以不写,相当于return None
'''

#定义了一个无参无返回值的函数
def myPrint():
    print("tom is a good man")
    print("tom is a  man")

'''
函数的调用
格式:函数名(参数列表)

函数名:要使用的功能的函数的函数名
参数列表:函数的调用者给函数传递的信息,没参数小括号也不能缺
函数调用的本质:实参给形参赋值的过程
参数必须按顺序传递
'''
myPrint()

#形参:定义函数时小括号中的变量,本质是变量
def my_Print(str,age):
    print(str,age)

#实际参数:调用函数时给函数传的数据,本质是值
my_Print("tom",99)

#将结果返回给函数的调用者,执行完return函数结束,return后面的不执行
def mySun(num1, num2):
    return  num1 + num2

print(mySun(1,2))   #3

'''
传递不可变类型
'''
def func1(num):
    num = 10

temp = 20
func1(temp)
print(temp)   #20值不变


'''
传递的可变类型
'''
def func2(lis):
    lis[0] = 100

lis = [1,2,3,4,5]
func2(lis)
print(lis)    #[100, 2, 3, 4, 5]

'''
关键字参数:允许函数调用时参数的顺序与定义时不一致
'''
def func3(str,age):
    print(str,age)
#使用关键字参数
func3(age = 99,str = "tom")

'''
默认参数:调用函数时,如果没有传递参数,使用默认参数
如果要用默认参数,最好将默认参数放到最后
'''
def func4(str = "tom",age = 88):
    print(str,age)
func4()                     #tom 88
func4("jay")                #jay 88

'''
不定长参数:能处理比定义时更多的参数
'''
#加了*的变量存放所有未命名的参数变量,如果在函数调用时没有指定参数,他就是一个空元组

def func5(name, *args):
    print(name)
    for x in args:
        print(x)

func5("tom","is","a","good","man")

#**代表键值对参数字典
def func6(**kwargs):
    print(kwargs)
    print(type(kwargs))         #<class 'dict'>

func6(x = 1,y = 2,z = 3)        #{'x': 1, 'y': 2, 'z': 3}

def func7(*args, **kwargs):
    pass #代表一个空语句


'''
匿名函数:不使用def这样的语句定义函数,使用lambda来创建匿名函数
特点:
1、lambda只是一个表达式,函数体比def简单
2、lambda的主体是一个表达式,而不是代码块,仅仅只能在lambda表达式中封装简单逻辑
3、lambda函数有自己的命名空间,且不能访问自有参数之外的或全局命名空间的参数
4、虽然lambda是一个表达式且看起来只能写一行,与c和c++内联函数不同
格式:lambda 参数1,参数2.。。。,参数n:expression
'''
sum = lambda  num1,num2:num1+num2
print(sum(1,2))    #3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值