python小笔记-函数

函数

概述:

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

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

格式:def 函数名(参数列表):

语句

return 表达式

#def: 函数代码块以def关键字开始

#函数名:遵循标识符规则

#参数列表:(参数1,参数2...参数n)任何传入函数的参数和变量必须放在圆括号之间,用逗号隔开。函数的调用者那里获取的信息

#():是参数列表的开始和结束

#::函数的内容(封装的功能)是以冒号开始的,并且缩进

#语句:函数封装的功能

#return:一般用于结束函数,并返回信息给函数的调用者

#表达式:即为要返回给函数的调用者的信息

注意:最后的return 表达式可以不写,相当于return None

注意:执行完return语句,该函数就结束了,return后面的代码不再执行

 

函数的调用:

格式:函数名(参数列表)

#函数名:是要使用的功能的韩束韩束名字

#参数列表:函数的调用者给函数传递的信息,若没有参数,括号也不能省略

本质:实参给形参赋值的过程

 

函数的参数

实参(实际参数):调用函数时给函数传递的数据,本质是值

形参(形式参数):定义函数时小括号中的变量,本质是变量

eg:  def mySum(a,b):

return a+b

print(“sunck”)#执行完return语句,该函数就结束了,return后面的代码不再执行

res = mySum(1,2)

print(res)     返回3

 

参数的传递:

值传递:传递的是不可变类型(string、tuple、number)

eg: def func1(num):

num = 10

temp = 20

func1(temp)

print(temp)    返回20(temp的值不变)

引用传递:传递的是可变类型(list、dict、set)

eg: def func2(lis):

lis[0] = 100

li = [1,2,3,4,5]

func2(li)

print(li)     返回[100,2,3,4,5]

 

关键字参数:

概念:允许函数调用时参数的顺序与定义时不一致

eg: def myPrint(str,age,weight):

print(str,age,weight)

myPrint(age = 18,str = “sunck”,weight = 70)    返回sunck 18 70

 

默认参数:

(要用默认参数,最好将默认参数放到最后)

概念:调用函数时,如果没有传递参数,则使用默认参数

eg: def myPrint(age = 18,str = “sunck”,weight = 70):

print(str,age,weight)

myPrint()    返回sunck 18 70

eg: def myPrint(age ,str = “sunck”,weight = 70):

print(str,age,weight)

myPrint(18)     返回sunck 18 70

 

不定长参数:

概念:能处理比定义时更多的参数

(加星号(*)的变量存放所有未命名的变量参数,如果在函数调用时没有指定参数,它就是一个空元祖)

(双星号(**)代表简键值对的参数字典,和*所有代表意义类似)

eg: def func (name,*arr):

print(name)

for x in arr:

print(x)

func(“sunck”,”is”,”a”,”good”,”man”)    返回sunck is a good man

eg: def func1 (**kwargs):

print(kwargs)

func(x = 1,y = 2,z = 3”)     返回{‘x’,:1,’y’:2,’z’:3}

eg: func3(*args,**kwargs):

pass #pass代表一个空语句

#上eg代表接受任意参数

 

匿名函数:

概念:不适用def关键字这样的语句定义的函数,使用lambda来创建匿名函数

特点:1、 lambda只是一个表达式,函数体比def简单

      2、lambda的主题是一个表达式,而不是代码块,仅仅能在lambda表达式中封装简单的逻辑

      3、lambda函数有自己的命名空间,且不能访问自由参数列表之外的或者全局命名空间的参数

      4、虽然lambda是一个表达式且看起来只能写一行,与c、c++内联函数不同

格式:lambda 参数1,参数2...参数n:expression

eg: sum = lambda num1, num2: num1 + num2

print(sum(1,2))     返回3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值