一、基础知识
(一)语言特性
-
Python是解释型、跨平台的高级通用脚本语言,语法简洁、生态丰富,支持面向过程和面向对象编程。
-
执行速度较编译型语言慢,但可调用C语言编写的底层代码提升性能,适用于数据分析、机器学习、Web开发等多个领域,不适合作为系统编程的首选语言。
-
源文件后缀名主要为`.py`,还有`.py3`、`.pyc`等其他后缀。
(二)语法元素
-
缩进:用于表示程序的格式框架和代码块所属关系,分支、循环、函数等结构后需通过冒号(:)结尾并缩进,缩进可嵌套,一般代码无需缩进(顶行编写)。
-
保留字:如if、while、for、def、class、try、except等,不可作为变量名,区分大小写(如True是保留字,true不是)。
-
变量命名:可由大小写字母、数字、下划线、汉字组成,首字符不能是数字,不能包含特殊符号(如!、-、*等)。
-
数据类型:
基本类型:整数(int)、浮点数(float)、复数(complex),支持算术运算(+、-、*、/、//、%、**)。
字符串(str):可通过单引号、双引号或三引号定义,支持索引、切片([N:M]前闭后开)、拼接、替换等操作,len()函数可获取长度。
组合类型:列表(list)、元组(tuple)、字典(dict)、集合(set)。
(三)常用函数与运算符
-
内置函数:len()(获取长度)、type()(判断类型)、eval()(执行字符串表达式)、int()/str()/float()/complex()(类型转换)、id()(获取对象内存地址)等。
-
运算符:
算术运算符://(整数商)、%(取余)、**(幂运算)。
比较运算符:==(值相等判断)、>、<等,字符串比较按对应索引字符的ASCII码值。
逻辑运算符:and、or、not。
增强赋值运算符:+=、-=等。
二、控制结构
(一)分支结构
-
单分支:if 条件: 代码块。
-
二分支:if 条件: 代码块1 else: 代码块2,支持紧凑形式"表达式1 if 条件 else 表达式2"。
-
多分支:if 条件1: 代码块1 elif 条件2: 代码块2 ... else: 代码块n,elif和else为可选。 4. 条件判断支持任意能产生True/False的语句或函数,支持连续判断(如11<=22<33)。
(二)循环结构
-
遍历循环:for 循环变量 in 遍历结构(字符串、列表、range()等),range(start, stop, step)生成指定范围的整数序列(不包含stop)。
-
无限循环:while 条件: 代码块,可通过break(跳出当前循环)、continue(结束本次循环)控制流程。
-
循环可与else搭配,循环正常结束时执行else代码块。
(三)异常处理
-
使用try-except语句捕获异常,try代码块执行异常时,执行except代码块,支持多个except分支处理不同类型异常。
-
常见异常类型:SyntaxError(语法错误)、TypeError(类型不匹配)、NameError(变量未定义)、ZeroDivisionError(除零错误)等。
三、函数
(一)函数定义与调用
-
用def关键字定义:def 函数名(参数): 代码块,可通过return语句返回结果(无return时返回None),支持返回多个结果(以元组形式)。
-
参数可设置默认值(可选参数),可选参数需放在非可选参数之后,调用时可按位置或参数名传递参数。
-
函数需先定义后调用,可嵌套在分支或循环语句内部,同一程序中可定义多个函数,无主函数强制要求。
(二)变量作用域
-
局部变量:函数内部定义,仅在函数内部有效,函数退出后释放。
-
全局变量:函数外部定义,程序执行全过程有效,函数内部修改全局变量需用global关键字声明。
(三)常用内置函数与标准库函数
-
random库:生成伪随机数,常用函数有random()(0~1浮点数)、randint(a,b)(a~b整数)、uniform(a,b)(a~b浮点数)、shuffle()(打乱列表)等。
-
time库:处理时间,常用函数有time()(返回时间戳)、localtime()(返回struct_time形式)、strftime()(格式化时间字符串)等。
-
turtle库:图形绘制,常用函数有fd()(前进)、left()/right()(旋转)、pencolor()(设置画笔颜色)、circle()(画圆)等。
四、组合数据类型
(一)列表(list)
-
有序可变,元素类型可不同,支持append()(末尾添加元素)、insert()(指定位置插入)、reverse()(反转)、copy()(复制)、clear()(清空)等方法。
-
索引支持正向(从0开始)和反向(从-1开始),切片格式为[ N:M:K ](N起始索引、M结束索引、K步长)。
(二)元组(tuple)
- 有序不可变,元素类型可不同,用圆括号定义,支持索引和切片,无修改元素的方法。
(三)字典(dict)
-
无序的键值对集合,键不可变(不能用列表作为键),值可任意,支持get(key, default)(获取值)、keys()(获取所有键)、values()(获取所有值)、items()(获取键值对)、pop(key)(删除键值对)等方法。
-
通过键索引值,len()函数返回键值对个数。
(四)集合(set)
- 无序无重复元素,用set()函数或大括号定义,支持交集、并集、差集等运算,常用方法有add()(添加元素)、remove()(删除元素)。
五、文件操作
(一)文件打开与关闭
- 用open()函数打开文件,语法:open(文件路径, 打开模式),打开模式包括:
r:只读模式(默认)。
w:覆盖写模式(文件不存在则创建)。
a:追加写模式(文件不存在则创建)。
x:创建写模式(文件存在则报错)。
b:二进制模式,
t:文本模式(默认)。
- 文件使用后需用close()关闭,或用with语句自动关闭。
(二)文件读写操作
- 读操作:read()(读全部内容)、readline()(读一行)、readlines()(读所有行,返回列表)。 2. 写操作:write()(写字符串或字节流)、writelines()(写列表中的字符串)。
(三)CSV文件处理
- CSV文件是逗号分隔的纯文本格式,用于存储一维或二维数据,每行表示一条一维数据。 2. 读取时可通过split(',')分割数据,写入时可通过join()方法拼接数据。
六、生态与第三方库
(一)常用第三方库分类
-
数据分析:numpy(矩阵运算)、pandas(数据处理)、matplotlib(数据可视化)。
-
机器学习:scikit-learn、TensorFlow、PyTorch、MXNet。
-
Web开发:Django、Flask、Pyramid。
-
网络爬虫:Scrapy、Requests、BeautifulSoup4(解析HTML/XML)。
-
图像处理:PIL(Pillow)、OpenCV-Python。
-
用户界面:PyQt5、wxPython。
(二)库的安装与打包
-
用pip工具安装第三方库,命令:pip install 库名,常用参数:download(下载不安装)、uninstall(卸载)、show(查看信息)。
-
用PyInstaller打包Python源文件,-F参数生成独立可执行文件,--clean参数清理临时文件。
七、常见考点与易错点
-
浮点数精度问题:0.1+0.2≠0.3(输出False),因二进制无法精确表示部分十进制浮点数。 2. 列表与字典的索引、切片操作:列表切片前闭后开,字典通过键索引而非整数索引。
-
函数参数传递:默认参数的赋值仅在函数定义时执行一次,可变类型参数(如列表)作为默认参数可能导致意外结果。
-
异常处理的适用场景:除零运算、用户输入格式错误、文件读取异常等场景需添加异常处理。
-
字符串转义字符:\0表示空格,\n表示换行,字符串中需输出引号时可使用转义符或不同引号嵌套。