函数的缺省函数

缺省函数:如果一个函数有参数,而且这个参数设置了默认值,便称为缺省参数格式:

def 函数名(形参1, 形参2=数值):
   pass

调用函数:
1.如果缺省函数的位置上没有传入实参,就会使用默认值
2.如果确性参数位置传入了实参,实参会把默认值修改掉.
下次在调用该函数的时候,缺省参数还是默认值.

作用:
1.简化了函数的调用
2.一个函数如果有缺省参数,那么缺省参数之后必须都是缺省参数…

不定长参数(元组)

元组
格式:

ef args(*args):  #单*是元组形参,双*是字典 args是函数名
    print(args[0]) #输出参数中的第一个数
    print(args)  # 输出参数
    print(type(args)) #输出数据类型,是元组类型
    print(len(args))  #输出参数的个数
args(1,2,3,4,5,6,7,8,9)  #调用函数

特点 :
1.调用函数的时候不知道传入了多少个实参
2.位置参数调用函数
3.函数内部使用下标索引获取实参的数据

不定长参数(字典)

特点:
1.调用函数的时候不知道传入多少个实参
2.关键字参数调用函数
3.函数内部通过key获取实参的数据
格式:

ef name(**name):
    print(name)
    print(type(name))   #字典类型 
    print(len(name))
    print(name["mz"])   #  mz=名字
    print(name['age'])
name(mz="小明",age=15)

函数的拆包和组包

拆包:将元组中的元素进行拆分
拆包的作用:适用于容器类型
拆包的格式:

my_tuple=("张三","20","男")
name,age,sex=my_tuple
print(name)
print(age)
print(sex)

组包的格式:

new_name="小明"
new_age=13
new_sex="男"
new_tuple=() #创建一个新元组
new_tuple=new_name,new_age,new_sex
print(new_tuple)

两个变量之间到交换

方法一:

a=20
b=15
print(a,b)
c=a
a=b
b=c
print(a,b)

方法二:

a=20
b=15
print(a,b)
a=a+b
b=a-b
a=a-b
print(a,b)

方法三:

a=20
b=15
print(a,b)
a,b=b,a
print(a,b)

函数的引用

引用是指在计算机中变量记录数据的一种方式(数据通常装在硬盘或者内存空间中)
在python中所有的数据都是引用类型
id()函数是查看一个变量在内存中的地址标识(独立序号)

一个变量发生改变 变量的地址一定会发生改变
如果一个变量拥有了一个内存地址,那他就可以为所欲为

改变赋值 如果地址未改变,则这个数据类型是可变的数据类型 反之则这个数据类型是不可变的数据类型
#可变的数据类型(以列表为例)
a=[1,2,3,4,5,6,]
print(id(a))
a.append(7)
print(id(a))

#不可变的数据类型(以元组为例)
b=(1,2.3,4,5)
print(id(b))
b=b+b
print(id(b))  #元组是不可变的数据类型 无论他的值是否发生改变 都会使用不同的地址

可变的数据类型:list(列表).dict(字典),ret(集合)
b=b+b是重新赋值 会改变地址
b+=b是对原来的数据进行修改 不会改变地址

不可变的数据类型:str(字符串),元组(tuple)
b=b+b b+=b 都是重新赋值 会改变地址.

流程控制关键字

break return continue

作用:都是控制流程语句的执行

区别:
1.continu:结束本次循环,开始下一次循环,不会跳出该循环
2.break: 结束当前循环,跳出当前循环部分执行循环之后的代码
3.return:结束当前方法,只要遇到有return的地方,不论retrun在哪里,直接自return所在处结束当前的函数.