Python应用八股文

大家好!在 Python 学习的道路上,掌握一些基础知识要点至关重要,这些要点常被称为"Python 八股"。以下是对它们的简易总结,帮助你快速回顾和巩固 Python 的核心概念。

一、数据结构

  1. 列表(List):有序可变序列,可包含不同类型的元素,如`my_list = [1, 'apple', 3.14]`。
  2. 元组(Tuple):有序不可变序列,与列表类似但不可修改,如`my_tuple = (1, 'banana', 2.71)`。
  3. 字典(Dictionary):无序键值对集合,键不可重复,用于存储和检索数据,如`my_dict = {'name': 'John', 'age': 25}`。
  4. 集合(Set):无序唯一元素集合,用于执行集合操作,如`my_set = {1, 2, 3}`。

它们主要区别在于可变性、有序性和是否允许重复元素。

二、数据类型

  1. 整数(int):表示整数值,占用字节取决于系统位数,如`x = 5`。
  2. 浮点数(float):表示带有小数点的数字,通常占用 8 个字节,如`y = 3.14`。
  3. 字符串(str):表示文本,用单引号或双引号,占用字节数与长度和编码相关,如`text = 'Hello, World!'`。
  4. 布尔值(bool):表示真或假,只有`True`或`False`,通常占用 1 个字节。
  5. 字节串(bytes):表示二进制数据,字节数等于元素数量,如`b = b'hello'`。
  6. 字节数组(bytearray):可变字节串,允许修改元素,占用字节数等于元素数量,如`ba = bytearray(b'hello')`。
  7. NoneType:表示空或不存在的数据,通常用于初始化变量,占用很小固定字节数。

三、控制流语句

  1. break 和 continue:`break`用于终止循环,跳出循环体;`continue`用于跳过循环体剩余代码,直接进行下一轮循环。
  2. return 和 yield:`return`用于从函数返回值并终止函数执行;`yield`用于生成迭代器,函数暂停保存状态,下次调用继续执行。

四、拷贝

  1. 浅拷贝:创建新对象,复制原对象元素引用,只复制对象一层,修改原始嵌套对象会影响浅拷贝,用`copy()`函数或切片操作。
  2. 深拷贝:创建新对象,递归复制原对象所有元素,包括嵌套元素,新对象与原始对象完全独立,用`copy.deepcopy()`函数,但更耗费资源且可能遇循环引用问题。

五、其他重要知识点

  1. range 和 xrange:Python 2 中,`range`返回列表,`xrange`返回生成器;Python 3 中,`xrange`被移除,`range`成生成器。
  2. is 和==:`==`比较对象值是否相等,`is`比较对象身份标识是否相等。
  3. lambda 函数:匿名函数,用于简化代码,常用于函数参数传递简单功能。
  4. 字符串拆分方法:`split()`、`splitlines()`、`partition()`等。
  5. 引号区别:单引号和双引号表示字符串无实质性区别,三引号表示多行字符串,也可作多行注释。
  6. Python 传参:注意参数顺序和类型匹配,有位置参数、关键字参数、默认参数和可变参数。
  7. 装饰器:修改函数或方法行为的高级技术,不改变函数代码和调用方式添加新功能,应用场景如性能测试、插入日志、权限校验。
  8. 作用域:分为局部作用域、全局作用域和嵌套作用域,决定变量或函数在程序中的可访问区域。
  9. 解释型和编译型语言:解释型语言运行时逐行解释源代码,编译型语言运行前先将源代码转换为机器代码。
  10. \\init\\和\\new\\:`init`初始化对象属性,`new`创建对象并返回实例。
  11. 常用模块:`math`、`datetime`、`random`、`os`、`sys`等。
  12. list 和 numpy.array:`list`是 Python 内置通用序列类型,不支持数学运算;`numpy.array`是 NumPy 提供的数组类型,支持高效数学运算。
  13. 类中 self:指向对象本身的引用,用于在类中引用对象的属性和方法,应用包括初始化属性、访问属性和方法、调用其他方法。
  14. Python 面向对象特征:封装、继承、多态,是一门多范式编程语言。

以上是 Python 八股文的简易总结,希望对你有所帮助。在学习过程中,建议多动手实践,加深对这些知识点的理解和掌握,这样才能在 Python 编程的世界中更加得心应手。

相关推荐
2301_7965125213 分钟前
Rust编程学习 - 问号运算符会return一个Result 类型,但是如何使用main函数中使用问号运算符
开发语言·学习·算法·rust
草莓熊Lotso18 分钟前
Linux 基础开发工具入门:软件包管理器的全方位实操指南
linux·运维·服务器·c++·人工智能·网络协议·rpc
座山雕~19 分钟前
测试接口-----详细
开发语言·postman
赋范大模型技术社区22 分钟前
LangChain 1.0 实战: NL2SQL 数据分析 Agent
数据分析·langchain·实战·agent·教程·nl2sql·langchain1.0
小龙报29 分钟前
算法通关指南:数据结构和算法篇 --- 队列相关算法题》--- 1. 【模板】队列,2. 机器翻译
c语言·开发语言·数据结构·c++·算法·学习方法·visual studio
晚秋大魔王34 分钟前
基于python的jlink单片机自动化批量烧录工具
前端·python·单片机
胖哥真不错35 分钟前
Python基于PyTorch实现多输入多输出进行CNN卷积神经网络回归预测项目实战
pytorch·python·毕业设计·课程设计·毕设·多输入多输出·cnn卷积神经网络回归预测
Jewel Q35 分钟前
PowerShell 和 CMD
运维
木木em哈哈36 分钟前
有关于cnb自动化的脚本补全
服务器·开发语言·pygame
星释37 分钟前
Rust 练习册 :Poker与扑克牌游戏
开发语言·游戏·rust