一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第25天,点击查看活动详情。
1、列出python中可变数据类型和不可变数据类型,并简述原理
不可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型
可变数据类型:当该数据类型的对对你哥变量的值发生了改变,那么它对应的内存地址不会发生改变,对于这种数据类型,就称可变数据类型。
总结“:不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变
不可变数据类型包含:整型、字符、元组 可以变数据类型包含:列表,字典、集合
2、常用的Python标准都有哪些?
标准库:os操作系统、time时间、random 随机、 pymysql 连接数据库、threading 线程、multiprocessing 进程、queue 队列。
第三方库:diango和flask、requests、virtualenv、selenium、acrapy、xadmin、celery、re、hashlib、md5.
常用的科学计算库: Numpy、Scipy、Pandas
3、列表与元组的区别是什么
元组是不可变的 不能修改,不可增加也不能删除 列表时可变的 可以增加, 也可以把已有的对象删除
4、当元组只有一个对象的时候,需要注意什么?
当元组中只有一个元素时,需要在元素后添加逗号
tup1 = (1,)
tup2 =(1)
print(type(tup1))
print(type(tup2))
此时运行结果为<class 'tuple'> <class 'int'>,tup2没有添加,表示就一个数字,int型。
5、怎么理解函数的动态参数
不确定参数类型的调用,仅输出对应值
*args 将所有的实参的位置参数聚合到一个元组,并将这个元组赋值给args ** kwargs 将多有的关键字实参作为字典的键值对聚合到一个字典,并赋值给kwargs
def func(*args,**kwargs):
print(args)
print("args的类型为:",type(args))
print(kwargs)
print("kwargs的类型为:",type(kwargs))
如果形式参数为空
func()
此时运行结果为() args的类型为: <class 'tuple'> {} kwargs的类型为: <class 'dict'> 表示args和kwargs都默认为空,类型args为元组,kwargs为字典
如果参数为列表类型
func(["test",123])
此时运行结果为(['test', 123],) args的类型为: <class 'tuple'> {}kwargs的类型为: <class 'dict'> 此时相当于只传了一个列表,默认我args,相当于是一个元组 ,kwargs默认为空,是一个空的字典
如果参数为字典类型
func(name="admin",age=18)
此时运行结果为() args的类型为: <class 'tuple'> {'name': 'admin', 'age': 18} kwargs的类型为: <class 'dict'> ,此时args默认为空,相当于是一个空的tuple,kwargs是一个字典类型,有相应的字典的键对值。