python(基础)函数入门
2020-08-02 19:24
459 查看
一、函数的概念
语法:
def 函数名(参数1,参数2,参数3…):
函数体
返回值
说明:
a.函数由两部分组成:声明部分和实现部分
b.def,关键字,是define的缩写,表示定义的意思
c.函数名:类似于变量名,遵循标识符的命名规则,尽量做到顾名思义
d.():表示的参数列表的开始和结束
e.参数1,参数2,参数3… :参数列表【形式参数,简称为形参】,其实本质上就是一个变量名,参数列表可以为空
f.函数体:封装的功能的代码
g.返回值:一般用于结束函数,可有可无,如果有返回值,则表示将相关的信息携带出去,携带给调用者,如果没有返回值,则相当于返回None
二、函数的参数
函数参数分为两类: 有参函数、无参函数
- 位置参数/必须参数
def f1(x, y): print(x, y) f1(3,4)
- 默认参数
# 默认参数 def f2(x, y, z=5): print(x, y, z) f2(3, 4, 6)
- 关键字参数
# 关键字参数 def f3(x, y, z): print(x, y, z) f3(z=3, y=4, x=5)
- 可变参数/不定长参数
# 可变参数/不定长参数 # *args: 用来接收任意多个位置参数 def f4(*args): print(args) f4() f4(1,2,3,4,5,6) def f5(x, y, *args, z, k): print(x, y, args, z, k) f5(1,2,3,4,5,6,z=7,k=8) # **kwargs: 用来接收任意多个关键字参数,会得到一个字典 def f6(x, y, **kwargs): print(x, y, kwargs) # 5 6 {'z': 7, 'k': 8} f6(5, 6, z = 7, k=8) # f6(3,4,1,3)
- 接受任意参数,通配参数
# 参数的书写顺序: # 形参:位置参数, *args,默认参数,**kwargs # 实参:位置参数, 关键字参数 def f7(a,b,*args,c=6,d=7,**kwargs): print(a,b,args,c,d,kwargs) f7(1,2,3,4,d=77, x=8, y=9) #接受任意参数:通配参数 def f8(*args, **kwargs): print(args,kwargs) f8(1,2,3,5,x=6,y=7)
三、匿名函数
不再使用def这种的形式定义函数,使用lambda来创建匿名函数
特点:
a.lambda只是一个表达式,比普通函数简单
b.lambda一般情况下只会书写一行,包含参数,实现体,返回值
语法:lambda 参数列表 : 实现部分
#语法:lambda 参数列表 : 实现部分 #1. #需求:求两个数的和 #普通函数 def add(num1,num2): sum = num1 + num2 add(num1 = 10,num2 = 20) #匿名函数本身是没有函数名,将整个lambda表达式赋值给一个变量,然后将这个变量当做函数使用 sum1 = lambda n1,n2:n1 + n2 print(sum1(10,20)) #2.在匿名函数中也可以使用关键字参数 g = lambda x,y:x ** 2 + y ** 2 print(g(3,4)) print(g(x = 3,y = 4)) #3.在匿名函数中也可以使用默认参数 h = lambda x=0,y=0 : x ** 2 + y ** 2 print(h()) print(h(10)) print(h(10,20))
四、值传递和引用传递
值传递:传参的过程中传递的是值,一般指的是不可变的数据类型,number,tuple,string
引用传递:传参的过程中传递的是引用,一般指的是可变的数据类型,list,dict, set
代码演示:
# 基本类型: 不可变类型 # int float str tuple bool None # 引用类型:可变类型 # list dict set # 基本类型赋值: 不关联 a = 10 b = a a = 20 print(a, b) # 20 10 # 引用类型赋值:关联 l1 = [1,2,3] l2 = l1 l1[0] = 99 print(l1,l2) # 函数中 age = 10 person = {'name':'小明', 'age':43} def change_age(age1,person1): # age1= age; person1=person global age age1 += 1 person1['age'] += 1 # change_age() change_age(age,person) print(age,person)
相关文章推荐
- 拜师——python基础入门—第5大节课—函数:返回值——day25
- python入门基础教程08 函数的形参与实参
- Python学习入门基础教程(learning Python)--2.3.1 Python传参函数设计
- 零基础入门学习Python(17)--函数:Python的乐高积木
- Python基础入门5--函数
- Python基础入门-函数实战登录功能
- python入门基础函数和匿名函数
- Python编程:从入门到实践 学习笔记 基础知识(六)函数
- 拜师——python基础入门—第7大节课— 函数: nonlocal 和 global 区别——day29
- 拜师——python基础入门—第5大节课—函数: 形参和实参,文档字符串, 函数注释——day25
- Python学习入门基础教程(learning Python)--2.3.2Python函数实参详解
- 个人随手自学笔记--python3入门及基础知识点(5)—— 枚举、闭包、表达式、函数、装饰器、小爬虫
- 函数:lambda表达式 - 零基础入门学习Python021
- 零基础入门学习Python(17)--函数:Python的乐高积木
- Python基础入门(十七)-函数里的参数
- 拜师——python基础入门—第7大节课— 函数: 嵌套函数 (内部函数) 数据隐藏——day29
- 拜师——python基础入门—第5大节课—函数的基本概念 内存分析 函数的分类 定义和调用——day24
- 基础入门_Python-内建函数.运维开发中eval内建函数的最佳实践?
- python入门基础教程08 函数的形参与实参
- Python基础入门之函数三之递归函数