当前位置: 首页 > news >正文

python基础面试器(其一)

一, 你为什么主要学习的是python语言?

我觉得python 是一门优秀的综合语言,python的宗旨就是简明,优雅,强大,在数据采集,人工智能,云计算,金融分析,大数据开发,web开发,自动化运维,测试等方面运用的都很广泛。

二, python原生数据类型有哪些?或者说python基本数据类型有哪些?

整型/浮点型, 字符串, 布尔,空值

三, 哪些是可变类型,哪些是不可变类型?

可变类型主要有:列表,集合, 字典 。不可变类型主要有:数字,字符串, 元组

四, 不可变类型和可变类型的区别是什么?

不可变类型在修改类型,赋值 ,或者参数传递时,会复制一个新对象,而可变类型引用同一个对象

五,说说常用的数据结构有哪些?各自的特点?

顺序索引结构:列表,元组

顺序结构: 栈和队列

非线性:集合和字典

列表和元组: 按索引访问, 访问速度快 插入和删除不易

栈:后进先出 多用于替换递归算法

队列:先进先出 多用于消息队列多个对象的相互通信

集合:元素不重复,多用于去除重复

字典: 键值格式存储,查询效率高, 适配查询性能要求高的环境

六, 什么是面向对象?谈谈详细认知

OOP(Pbject Oriented PrograMing)编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述。与面向过程机械式的思维方式形成鲜明对比,面向对象更加注重对现实世界而非流程的模拟,是一种“上帝式”的思维方式。

其核心就是对象二字,对象就是特征与技能的结合体。

它的优点有:

        1,使程序更加容易拓展和易更改,使开发效率变得更高(对某个对象类属性的修改,会立刻反映到整个体系中)

        2,基于面向对象的程序可以使他人更加容易理解代码逻辑。

封装,继承和多态为面向对象的三大特性

封装增强了类的数据使用的安全性和使用的便携性,继承增强了类的复用度,多态让类的对象的处理呈现出统一且可拓展及可维护性

七, 什么是鸭子类型

鸭子类型是类多态的一种强力补充,充分利用了python语言标识符的动态性,增强了代码对同行为对象的统一处理能力

八, 说一说你常用的魔法方法

魔法方法

信息获取:

__class__ # 获取类型
__dir__ # 获取全描述
__doc__ # 获取类及类中方法的注释

属性相关:

__delattr__ # 删除对象属性时执行的方法
__getattribute__ # 获取找不到的属性时执行的方法
__setattr__ # 设置属性时执行的方法

运算符重载:

__eq__ # ==
__ge__ # >=
__gt__ # >
__le__ # <=
__lt__ # <
__ne__ # !=

集合相关:

__hash__ # 哈希

构造:

__new__ # 构造

初始化:

__init__ # 初始化

对象自动解析:

# 交互式时使用
__repr__
# 一般类中重写将对象解析为字符串
__str__

格式化对象时

__format__

归约相关

__reduce__
__reduce_ex__

生成子类对象时:

__init_subclass__

检测子类方法:

__subclasshook__

九, 谈一谈你对python动态性的理解?是否知道猴子补丁?

动态性指的是在运行过程中给类或对象绑定添加属性

猴子补丁:在函数或对象一定定义之后再去改变他们的行为

十, 谈谈python的异常处理方式

try: 可能存在异常的语句块

except exception : 异常处理语句块

else:未发生异常语句块

finally: 结束后执行语句块

raise: 抛出异常

相关文章:

  • 为什么要学习这么多“没用”的知识
  • 持续总结中!2024年面试必问 20 道设计模式面试题(一)
  • 倩女幽魂手游攻略:云手机自动搬砖辅助教程!
  • Python学习从0开始——Kaggle深度学习002
  • Java多线程设计模式之不可变对象(Immutable Object)模式
  • [深度学习]基于C++和onnxruntime部署yolov10的onnx模型
  • Swift开发——元组
  • 一篇搞定Spring,IOC容器,Bean管理,3.AOP底层原理和实现(收下吧,真的很详细)
  • Linux之逻辑控制符
  • 【Linux】使用 iptables 验证访问HDFS 所使用到的端口
  • Warning: `ReactDOMTestUtils.act` is deprecated in favor of `React.act`.
  • Linux远程访问及控制
  • MySQL的卸载
  • 如何修改倍福CX7000PLC IP地址
  • python GUI开发: tkinter事件处理的几种方式详解与应用实战
  • 使用node写脚本生成小说
  • eslint 使用单引号,Prettier使用双引号冲突
  • CCF 矩阵重塑
  • Web前端学习网:深度探索前端技术的四维、五域、六技与七法
  • leetcode 1355 活动参与者(postgresql)
  • 无畏契约新王诞生:属于电竞世界的凯泽斯劳滕奇迹
  • 力保夏粮丰收,粮食大省江苏多地党政主官到田间察看小麦长势
  • 人形机器人,最重要的还是“脑子”
  • 17家A股城商行一季报扫描:青岛银行营收增速领跑,杭州银行净利增速领跑
  • 牛市早报|今年第二批810亿元超长期特别国债资金下达,支持消费品以旧换新
  • 美国“杜鲁门”号航母一战机坠海