目录
(1) 双击python安装包Python-3.11.6-amd64
1) 单引号、双引号、三引号都是成对出现的。如果以单引号开头就要以单引号结尾,不能混合使用表示字符串。如下代码就会报错:
2) 如果字符串中单独出现单引号或双引号,可以使用另一种引号定义
3) 当获取列表指定范围的一组元素时,不存在列表索引越界的问题,示例代码
4) 获取列表指定范围时可以同时使用正数和负数索引,示例代码
一. Python 初识
1. Python 的优势
虽然 Python 易于使用,但它却是一门完整的编程语言;与 she11 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。另一方面,Python 提供了比( 更多的错误检査,并且作为一门 高级语言,它内置支持高级的数据结构类型
Python 允许你将程序分割为不同的模块,以便在其他的 Python 程序中重用。Python 内置提供了大量的标准模块。这些模块提供了诸如文件 I/0、系统调用、Socket 支持,甚至类似 Tk 的用户图形界面(GUI)工具包接口。
Python 是一门解释型语言,因为无需编译和链接,你可以在程序开发中节省宝贵的时间。Python 解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。还可以把它当做一个桌面计算器。
Tkinter(也叫 Tk 接口)是 Tk图形用户界面工具包标准的 Python 接口。Tk 是一个轻量级的跨平台图形用户界面(GUI)开发工具。
2. Python 的特性
Python 让程序编写的紧凑和可读。用 Python 编写的程序通常比同样的(、C++ 或 Java 程序更短小,这是因为几个原因:
- 高级数据结构使你可以在一条语句中表达复杂的操作;
- 语句组使用缩进代替开始和结束大括号来组织;
- 变量或参数无需声明。
3. Python 的应用领域
Python 是一种通用编程语言,具有广泛的应用领域域。也是一门学习曲线非常平滑的编程语言,Python 也成了众多编程入门的首选!
(1) 数据科学和机器学习
Python 在数据科学和机器学习领域非常流行,因为它有许多强大的库和框架,如 NumPy、Pandas、Scikit-learn 和 TensorFlow 等。
(2) web 开发
Python 也可以用于 web 开发,因为它有 Django 和 Flask 等流行的 web 框架
(3) 自动化测试
Python 还可以用于自动化测试,因为它有许多流行的测试框架,如 unittest 和 pytest 等。
(4) 网络爬虫
Python 还可以用于网络爬虫,因为它有许多强大的库和框架,如 Beautifulsoup、Scrapy 和Requests 等。
(5) 游戏开发
Python 也可以用于游戏开发,因为它有许多流行的游戏引擎,如 Pygame 和 Panda3D 等。
(6) 数据分析
Python 还可以用于数据分析,因为它有许多流行的库和框架,如 NumPy、Pandas 和 Matplotlib 等
(7) 数据可视化
Python 还可以用于数据可视化,因为它有许多流行的库和框架,如 Matplotlib、Seaborn 和 Bokeh等
二. Linux 环境中安装 Python
1. 下载 Python3.11.6
可以在 Python 的官方网站下载,网址是 http://www.python.org
2. 安装依赖包
(1) 设置 yum 仓库
设置好 centos 基础源和 epel 扩展源,案例使用阿里的更新源。
(2)安装依赖包
安装源码编译需要的编译环境
3. 解压 Python 压缩包
4. 安装python 
可选配置项,含义
- --enable-optimizations:用 PROFILE TASK 启用以配置文件主导的优化(PGO)
- --with-lto:在编译过程中启用链接时间优化(LTO)
- --enable-shared:启用共享 Python库libpython 的编译
- --with-ss1:编译安装 ss1 模块到 Python3 中(默认)
5. 编译及安装
如果主机上已经安装有其他版本的 python3,注意是3的版本,要使用 altinstall 而不是install 。二者的一个重要区别在于,后者会创建符号链接,将 python3 等命令链接到正在安装的新版本 Python 3 上,这可能会破坏系统。如果是python2 的版本,不会有此影响。
6. 建立软连接
7. 测试 Python3 运行
8. 设置国内 pip 更新源
9. 更新 pip 版本(必须更新)
三. windows 系统中安装Python
1. 安装Python 程序
(1) 双击python安装包Python-3.11.6-amd64
(2) 安装成功后测试
2. 安装vscode编译器
在 Linux 系统中,我们可以直接使用 vi 编辑器对 Python 代码进行编写,在 Windows 系统中,Python提供了 IDLE 编译器,但是使用起来很不友好,我们可以安装一个 vscode 编译工具,对 Python 进行编译。安装过程如下。
(1)双击安装包VsCodeUsersetup-x64-1.85.0,进入安装界面
(2) 设置安装路径
可以使用默认安装路径,也可以使用自定义的安装路径
(3) 选择开始菜单文件夹
此步骤直接下一步
(4) 选择附加任务
(5) 开始安装
3. 安装 vscode 插件
打开看不懂语言可以安装一个中文简体的插件
在扩展模块里搜索
(1)安装 python 插件
Extentions(扩展)按钮,在搜索区域输入“python”,然后选择 Python 插件进行安装,有了这个插件,就可以在 vscode 中编辑 python 代码了。
(2) 安装black format 插件(选装)
用同样的方法安装一个“black format”插件,该插件可以使用“shift+Alt+F”组合键对 Python 代码进行格式化的处理,自动整理代码的书写规范,让代码看上去更美观。
4. 设置国内更新资源
输完前两条命令后还需要输入一条 pip版本更新的命令
pip install -upgrade pip
如果命令不成功 会提示输入什么命令在提示的最后一行直接输入就可以了
验证配置
四. Python 的语法基础
1. 标识符
所谓的标识符就是对 变量、常量、函数、类 等对象起的名字。
首先必须说明的是,Python 语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不同,python 对于表示标识符的命名有如下规定:
- 标识符的长度不受限制,但其中的字符必须是字母、数字、或者下划线(),而不能使用空格、连字符、标点符号、引号或其他字符。
- 标识符的第一个字符不能是数字,而必须是字母或下划线。
- Python 区分大小写。
- 不能将 Python 关键字用作标识符。
例如:a,abc,id ,等都是可以的。但是例如: $a(以$开头的是 PHP 的变量语法),~abc123a 都是不可以的。这一点一定要注意。可能有人会问,中文可以作为标识符吗?答案是可以的。
2. Python 保留字
Python 保留字,也叫关键字,是 Python 语言官方确定的用作语法功能的专用标识符,不能把它们用作任何自定义标识符名称。关键字只包含小写字母。可以通过 python 提供的库输出这些关键字:
Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字
3. 注释
写的程序里,不光有代码,还要有很多注释。注释有说明性质的、帮助性质的,它们在代码执行过程中相当于不存在,透明的。
(1) 单行注释
Python 中,以符号“#”为单行注释的开始,从它往后到本行的末尾,都是注释内容
# 单行注释
(2) 多行注释
Python 没有真正意义上的多行注释(块注释)
# 第一行注释
# 第二行注释
# 第三行注释
4. 语句与缩进
(1) 语句
在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。这里强调一下,python的标准语言不需要使用分号。简单的换行就表示语句已经结束。
(2) 代码块
为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号(:)结束。比如:
Python 最具特色的语法就是 使用缩进来表示代码块,不需要使用大括号像 PHP、 JAVA 等语言都是使用 ({}) 来表示代码块的。 python 一般用四个空格来缩进。在 pycharm 或 vscode 中 tab 自动回转成 4 个空格。在 Linux 环境中,如 VIM 编辑器,建议使用空格。
(3) 多行语句
前面的例子中都是多条语句在同一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠(\)来实现多行语句。
执行结果
5. pass 语句
pass 语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用 pass语句:
- 当你不知道后面的代码怎么写的时候
- 当你不需要写代码细节的时候
- 当语法必须,又没有实际内容可写的时候
- 其它的一些你觉得需要的场景
五. Python 常用的数据类型
Python 内置的数据类型有数字、字符串、元组、列表和字典。
1. 数字
数字类型包括整型、浮点型、布尔型等,声明时由 Python 内置的基本数据类型管理变量,在程序的后台实现数值与类型的关联,以及转换等操作。根据变量的值自动判断变量的类型,程序员不需要关心变量空间是什么类型,只需知道创建的变量中存放了一个数,通过编码对这个数值进行操作即可。
示例 1 的代码中,首先定义了变量 x=123。此时的 x 值是整数,x 即是整型变量。当执行语句x=1.22 时,x又成为了浮点型变量,由此可以看出,变量的类型是能改变的,与 Java、c#语言等是有区别的。这是因为当 Python 给已经存在的变量再次赋值时,实际上是创建了一个新的变量,即使变量名相同,但标识并不相同,变量的标识可以使用 id 函数输出。
(2) 布尔型
布尔型是用于逻辑运算,有2个值True、False,表示真和假。
示例 2:为变量赋布尔型数值
代码定义了变量 f=True。if 是判断语句,为真则执行 print 语句,最后输出的是 1,说明语句执行成功。
使用比较运算符返回的结果是布尔值
为假 为真
(3 )Python 运算符
Python 中使用的算术运算符和数学运算中使用的符号基本相同,由+、-、*、/(加、减、乘、除)和小括号组成,运算顺序也是先乘除后加减、小括号优先。
四则运算示例代码
Python 还有两个算术运算符是%和**,分别实现求模和求幂运算。
求模运算取余数,求幂是计算累乘的结果。
求模和求幂运算示例代码
%算的结果时余数 **算的是2*2*2*2
2. 字符串
Python 中的字符串类型是一组包含数字、字母和符号的集合,作为一个整体使用。
(1) 字符串使用
在 Python 中有 3 种表示字符串的方式,单引号、双引号、三引号。
Python 字符串的 3 种表现方式
变量 name 使用单引号,变量 adders 使用双引号,变量 content 使用三引号,它们都是合法的 Python 字符串类型。需要注意的是,单引号和双引号作用是一样的, 可以根据习惯使用。但定义多行文字时,必须要使用三引号。
(2) 使用字符串注意事项
字符串的定义方式单引号、双引号、三引号大部分情况下作用是相同,但在特殊情况中使用也有所区别,下面列出需要注意的地方。
1) 单引号、双引号、三引号都是成对出现的。如果以单引号开头就要以单引号结尾,不能混合使用表示字符串。如下代码就会报错:
2) 如果字符串中单独出现单引号或双引号,可以使用另一种引号定义
使用引号定义字符串的值
字符串变量 title 中出现了单引号,需要使用双引号定义,字符串变量 title2 中出现了双引号,需要使用单引号定义。当字符串中同时出现单引号和双引号,就需要使用三引号进行定义。
3) 当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义。Python中的转 义字符是“\”,只要在特殊字符前面加上“\”,就可以输出原字符,而不需关注定义字符串使用的是单引号还是双引号。
使用转义字符为字符串赋值
备注:
Python 的常用转义字符
- \(在行尾时)续行符
- \\反斜杠符号
- \'单引号
- \"双引号
- \n换行
- \v 纵向制表符
- \t横向制表符\t
- \r回车
(3) 字符串的其它用法
Python 的字符串可以进行乘法(*)的操作,使用一个整型数字和字符串相乘。
例如用数字 3 乘字符串“a”,结果是字符串”aaa”,等同于将字符串“a”连接了 3 遍,代码和运行结果如下:
3. 列表
列表(1ist)是 Python 中非常重要的数据类型,通常作为函数的返回类型。由一组元素组成,列表可以实现添加、删除和查找操作,元素值可以被修改。
(1) 列表的定义
列表是 Python 内置的一种数据结构,由中括号“[]”定义,元素以逗号分开
语法:
列表名 = [元素 1,元素 2,…]
(2) 列表的取值
1)列表中的数据是有序的,按定义时的顺序排好,可以单独取出某一位置元素的数值。
语法:
列表名[索引位置]
使用列表保存元素的数值,并输出示例代码
代码中,定义的列表 num 中,存储有三个字符串,其顺序是'001’、'002’、'003 取值时用列表名 num 加上中括号,数字表示索引位置。需要注意:列表中元素的是由 0开始,以 1为单位依次递增。
2) 可以获取列表指定范围的一组元素
语法
列表名 [起始位置:终止位置]
可以输出起始位置到终止位置前的元素,不包括终止位置。
输出列表中指定位置的元素
num 列表后的[0:1]表示获取由索引 0 开始至索引位置 1 之前的元素,所以只能取到第 1 个元素;而[0:2]则可以取到索引 2 之前的元素,其它的与此相同。
修改列表中指定位置的元素值示例代码
定义列表 num 时,索引位置 日的元素是“001”,修改它的值为“004”后,索引位置 θ 元素的值变为“004”
(3) 添加列表元素
可以采用两种方式,添加向列表中添加元素
1)可以把一个元素添加到列表的最后
语法:
列表名.append(元素值)
代码执行语句 num.append('004')之后,字符串“004”被添加到列表的末尾。
2) 在列表指定位置前插入新的元素
语法:
列表名.insert(索引位置,元素值)
将元素添加到列表中指定的位置示例代码
句 num.insert(1,'004')的作用是在列表 num 的索引位置 1 之前插入字符串'004’。初始时,num 有 3 个元素,索引位置 1 的当前元素是’002',执行代码后, 字符串'004’插入到'002’的前面。
(4) 删除列表元素
可以删除列表指定索引位置的元素
语法:
del 列表名[索引位置]
删除列表中第 2个元素示例代码
首先,执行语句 del num[1],使用 del 删除索引为 1 的元素’002’。然后,车出列表 num 中所有元素时,列表中已经不存在’002’元素。
(5) 查找列表元素
使用 in 关键字可以查找列表中是否存在指定的数值
语法:
元素值 in 列表名
返回布尔类型 True 或 False。如果查找到,返回 True;否则,返回 False。
使用关键字 in 查找列表中是否存在指定的数值
为字符串'001’在列表中存在,返回 True。而由于字符串'004'在列表中不存在,则返回 False。
(6) 合井列表
多个列表可以使用加号(+)进行合并,加号后面的列表元素会追加到前面列表的后面
使用+合并两个列表
定义了两个列表 num1 和 num2。使用加号进行合并操作时,加号后面的列表元素会追加到前面列表的后面。
(7) 重复列表
使用星号(*)可以对列表进行重复操作,与单独字符串乘法操作相似。
使用*重复输出列表的元素值
语句 num = num1*5 表示为 num 赋值时,将 num1 的元素重复出现 5 遍。
(8) 列表常见问题
Python 中,使用列表实现各种操作时,可能会得到意外的结果。其中最常见的问题是索引越界。索引越界是使用列表时经常犯的一个错误。如列表中有3个元素,因为索引位置是从 8开始计算,所以最大的索引值是 2。如果索引值大于2,表示索引是越界的,程序无法执行。
1) 索引越界
2) 负值索引
索引俏为 5 时,大于最大的索引值 2,程序报索引越界错误。那么,当使用小于 8 的负数索引时会不会出错呢?答案是不会,因为 Python 列表的负数索引表示的是由列表的末尾进行反向的取值,也就是最后一个元素的位置也可以使用索引-1 取值,倒数第二个索引是-2, 向前依次递减,示例代码
3) 当获取列表指定范围的一组元素时,不存在列表索引越界的问题,示例代码
列表 num 中有 3个元素,获取列表范围时指定了最大位置是 5,超出了最大索引值, 程序可以正常执行,并没有报错。
4) 获取列表指定范围时可以同时使用正数和负数索引,示例代码
表示获取由案引位置 8元素开始,到-1元素之前的所有元素。
5) 列表元素也可以是列表,示例代码
案例定义了列表 num,它里面的每一个元素也是一个列表,使用 num[0]表示取到的是第一个元素值,对应的是一个列表。使用 num[0][0]表示取到第一个元素列表的第一个值,使用 print num[2][1]表示取到第三个列表的第二个元素值。
4. 元组
元组(tuple)和列表类似,也是 Python 的一种数据结构,由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。但元组是不可以修改的,即元组创建后不能做任何的修改操作。元组通常表示一行数据,而元组中的元素表示不同的数据项。
(1) 元组的创建
元组由关键字和小括号定义,一旦创建后就不能修改元组的内容,定义的语法
元组名 = (元素 1,元素 2,...)
与列表最大的不同是:元组是写保护的,元组一旦创建就不能做任何的修改。下面定义一个元组,尝试对它修改,示例代码
定义元组 num 后,尝试对索引位置 8 的元素值进行修改,程序直接报错。元组与列表的区别
列表 | 元组 | |
元素 | 方括号 | 圆括号 |
可变性 | 可变 | 不可变 |
操作 | 添加、修改、删除、搜索 | 搜索 |
在使用时元组与列表区别并不大,那么为什么要使用元组呢?主要是因为元组是不可变的,操作速度比列表快,而且因为它不可以修改,数据要更加安全,所以要根据实际情况决定是使用元组还是 列表,使程序更加高效合理
(2) 元组的操作
1) 元组具有不可变性,所以相比列表的操作要少,其中取值操作与列表是完全相同的,示例代码
与列表的取值操作完全相同,都是使用方括号、索引获取指定位置的数值。
2) 元组不允许删除元组中的元素值,但是可以删除整个元组
语法:
del 元组名
元组删除报错代码
3)元组和列表可以做互相转换操作,元组转换为列表的语法
list (列表名)
元组转换为列表代码
这段代码首先定义了元组 num,然后把它转换为列表 listNum,对列表 listNum 可以做修改元素的操作,使用 type()函数输出了元组的列表的类型。
列表转换为元组
语法:
tuple(列表名)
列表转换为元组
可以看到转换是成功的,输出的类型正确
5. 字典
字典(dict)是 Python 中重要的数据类型,字典是由“键-值”对组成的集合,字典中的值通过键来引用。
(1) 字典的创建
字典的每个元素是键值对(key-value)组成,键值之间使用冒号分隔,“键值对”之间用 逗号隔开,并且被包含在一对花括号中。键是唯一的,不能存在多个相同的值,且它的值是无序的,键可以是数字、字符串、元组,一般用字符串作为键。
语法:
字典名 = {键 1: 值 1,键 2: 值 2,…}
定义了一个字典 mobile,存储的键是姓名、值是电话号码,由此,姓名和电话号码就构成了对应的关系。可以使用 type()函数查看到它的类型是'dict’。
(2) 字典的取值操作
字典的取值与元组和列表有所不同,元组和列表都是通过数字索引获取对应位置的值,而字典是通过键获取对应的值。
需要注意的是:键是唯一的,而不同键的值却可以相同,当定义多个键相同时,字典中 只会保留最后一个定义的键值对,示例代码
(3) 字典的添加、修改、删除操作
1)字典添加新元素只需要对新键进行赋值即可,字典中不存在的键,会自动进行添加。
字典键值对的键名是区分大小写的。同一个单词,如果大小写不同,则被视为不同的键
2) 修改字典中的元素,直接使用存在的键赋值
3) 删除字典中的元素,使用 del 函数
使用 del 函数删除键“Tom”,字典中的对应键不存在了
6. 字典的常见问题
字典不能使用“+”运算符执行连接操作,
上面代码的运行结果可以得到结论:使用“+”运算符直接报错.