python基础

python基本数据类型

不可变数据类型,对应的值不可被修改,修改值就要重新分配内存空间并赋值;

  • Number(数字)
  1. 整型(int)
  2. 浮点型(float)
  3. 复数(complex)
  4. 布尔(bool)
  • string(字符串)
  • Tuple(元组)

可变数据类型,对应的值被修改,内存地址保存不变;

  • List(列表)
  • dict(字典)
  • Set(集合)

python对象三要素

  • id(身份标识)
  • type(数据类型)
  • value(值)

深拷贝和浅拷贝的区别

Python 直接赋值、浅拷贝和深度拷贝解析 | 菜鸟教程

  • 浅拷贝;创建一个新对象,引用原始对象的内存地址;所以新对象的值发生修改,原始对象的值也被修改;
  • 深拷贝:创建新对象的同时分配内存空间,原始对象的值被分配到新的内存地址中,修改新对象的值,原始对象的值不受影响;
  • 值就是对象的值,而引用是指向存储这个值的地址

列表与元组的区别

  • 可变性

        元组不可变类型

        列表可变类型,可以增加/删除/修改元素

  • 相对大小

        数据不可修改,选择使用元组类型

        列表是可变类型,通常比元组占用更多的内存空间

  • 使用场景

        元组用于表示一些不会被修改的数据,例如坐标、日期等

        列表通常用于存储一组动态变化的数据,例如用户输入记录、网络响应等

列表与字典的区别

 本质区别

  •  列表是有序序列,存储值,可以进行索引/切片
  • 字典是无序序列,存储键值对,不支持索引/切片,通过键获取

“==”运算符和“is”运算符的区别

  • 本质
  1. "=="比较操作符:比较对象的value(值)是否相等;结果返回一个布尔值,即True或False
  2. "is"身份运算符:比较对象的内存地址id(身份标识)是否相等;结果返回一个布尔值,即True或False
  • 应用场景
  1. "==" 通常用于比较值类型的对象,例如数值、字符串、列表等。
  2. "is" 通常用于比较引用类型的对象,例如自定义类的实例、函数等。

*args 和 **kwargs 区别

Python 函数参数前面一个星号(*)和两个星号(**)的区别 | 菜鸟教程

  • *args位置参数:可接受任意个位置参数,当函数调用时,所有未使用的位置参数会在函数内自动组装进一个tuple对象中,此tuple对象会赋值给变量名args
  • **kwargs关键字参数:可接受任意个关键字参数,当函数调用时,所有未使用的关键字参数会在函数内组装进一个dict对象中,此dict对象会赋值给变量名kwargs
  • 定义函数时,*args要在**kwags之前,不然会发生语法错误
  • *args和**kwargs组合起来可以传入任意的参数

 进程、线程区别

  • 本质区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位
  • 包含关系:一个进程至少有一个线程,线程是进程的一部分
  • 资源开销:每个进程都有独立的地址空间,进程之间的切换会有较大的开销;线程可以看做轻量级的进程,同一个进程内的线程共享进程的地址空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小
  • 影响关系:一个进程崩溃后,在保护模式下其他进程不会被影响,但是一个线程崩溃可能导致整个进程被操作系统杀掉,所以多进程要比多线程健壮

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值