Day2---函数、拆包、类型的可变与不可变

目录

一、函数

 1、函数传参的方式

2、形参

二、拆包

1、组包

2、拆包

3、拆包应用-------交换两个变量值

三、类型的可变与不可变

 1、不可变类型

2、可变类型

注意:


一、函数

 1、函数传参的方式

def func(a,b,c):
    print(f'a:{a}')
    print(f'b:{b}')
    print(f'c:{c}')
# 位置传参 按形参的位置顺序将实参的值给形参
func(1,2,3)
print('--'*5)
# 关键字传参 指定形参给哪个实参(必须为函数形参名)
func(b=2,c=3,a=1)
print('--'*5)
# 混合使用 关键字必须在位置参数后面
func(1,c=3,b=2)
print('--'*5)

2、形参

形参:

普通形参 缺省参数 不定长元组形参 不定长字典形参
# 缺省参数(普通参数后面) :函数定义时,给形参一个默认值。
# 函数调用时,如果没有值传入,则取默认值
def func(a,b,c=10):
    print(f'a:{a}')
    print(f'b:{b}')
    print(f'c:{c}')
func(1,2)

# 不定长参数 *args
def func(*agrs,**kwargs):
    print(agrs)
    print(kwargs)
# 形参前面加* 变为不定长元组形参,接受所有位置实参,类型为元组
# 形参前面加** 变为不定长字典形参,接受所有位置实参,类型为字典
print('-'*10)
func(1,2,3,4,5,6,6,)
print('-'*10)
func(a=1,b=2,c=4,d=9)
print('-'*10)
func(1,2,3,4,b=2,c=4,d=9)
print('-'*10)

# 不定长参数应用
def my_sum(*args,**kwargs):
    num=0
    for i in args:
        num+=i
    for j in kwargs.values():
        num+=j
    print(num)
my_sum(1,2,3,a=4,b=5,d=9)

# 形参的完整格式
# 普通形参 缺省参数 不定长元组形参 不定长字典形参
# def 函数名(普通形参,不定长元组形参,缺省参数,不定长字典形参)

# print中的sep 输出值之间的连接符 默认为空格

二、拆包

1、组包

组包 
        将多个数据给一个变量
a=1,2,3  #元组类型

def func():
    return 1,2  #组包

2、拆包

拆包 

        将容器的数据分别给多个变量 变量个数=数据个数
b,c,d=a
e,f=func()
n,m=[10,20]
q,p={'name':'l','age':18}

3、拆包应用-------交换两个变量值

# 拆包应用 交换两个变量值
a=10
b=2
b,a=a,b

三、类型的可变与不可变

类型的可变与不可变:
        不改变变量引用的前提下,是否能改变变量引用中的数据
不可变类型:int float bool str tuple
可变类型:list  dict

 1、不可变类型

a=10
b=10
print(id(a),id(b)) #python中的内存优化,对于不可变类型进行的
print('-'*10)

# 交互终端中,小整数默认范围-5~255 如果是小整数,使用相同的引用地址,如果不是,开辟新的内存
# 代码中无所谓
print(id(a)==id(b))
print('-'*10)

a='hello'
b='hello'
print(id(a),id(b))
print('-'*10)

a=(1,2)
b=(1,2)
print(id(a),id(b))
print('-'*10)

2、可变类型

my_list=[1,2,3]
my_list1=[1,2,3]
print(my_list,id(my_list))
print(my_list1,id(my_list1))
print('-'*10)

my_dict={'name':'ly','age':19}
my_dict1={'name':'ly','age':19}
print(my_dict,id(my_dict))
print(my_dict1,id(my_dict1))
print('-'*10)

注意:

元组是不可变类型,可以在里面存放可变类型
 

my_tuple2=(1,2,[3,4])
print(my_tuple2,id(my_tuple2))
my_tuple2[2][1]=10
print(my_tuple2,id(my_tuple2))

猜你喜欢

转载自blog.csdn.net/m0_46493223/article/details/126064265
今日推荐