Python简介与入门
目标
>了解Python
> 安装Python运行环境
> Python数字类型
> Python 字符串类型
> Python 的列表
> Python 元组
> Python 字典
前言
如果你要用计算机做很多工作,最后你会发现有一些任务你更希望用自动化的方式进行处理。比如,你想要在大量的文本文件中执行查找/替换,或者以复杂的方式对大量的图片进行重命名和整理。也许你想要编写一个小型的自定义数据库、一个特殊的GUI 应用程序或一个简单的小游戏。
如果你是一名专业的软件开发者,可能你必须使用几种 C/C++/JAVA类库,并且发现通常编写/编译/测试/重新编译的周期是如此漫长。也许你正在为这些类库编写测试用例,但是发现这是一个让人烦躁的工作。又或者你已经完成了一个可以使用扩展语言的程序,但你并不想为此重新设计并实现一套全新的语言。那么Python 正是你所需要的语言。
一:Python初识
1.Python的优势
虽然 Python 易于使用,但它却是一门完整的编程语言;与Shell 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。另一方面,Python提供了比C 更多的错误检查,并且作为一门高级语言,它内置支持高级的数据结构类型,例如:灵活的数组和字典。因其更多的通用数据类型,Python比 Awk 甚至 Perl 都适用于更多问题领域,至少大多数事情在 Python 中与其他语言同样简单。
Python 允许你将程序分割为不同的模块,以便在其他的Python 程序中重用。Python 内置提供了大量的标准模块,你可以将其用作程序的基础,或者作为学习Python 编程的示例。这些模块提供了诸如文件 I/O、系统调用、Socket 支持,甚至类似 Tk 的用户图形界面(GUI)工具包接口。
Python 是一门解释型语言,因为无需编译和链接,你可以在程序开发中节省宝贵的时间。Python解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。你甚至还可以把它当做一个桌面计算器。
备注:Tkinter(也叫Tk接口)是Tk图形用户界面工具包标准的Python接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。
2.Python的特性
Python 让程序编写的紧凑和可读。用 Python 编写的程序通常比同样的C、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
2.安装依赖包
3.解压Python压缩包
4.安装Python
-- enable-optimizations: | 用 PROFILE_TASK 启用以配置文件主导的优化(PGO) |
-- with-lto: | 在编译过程中启用链接时间优化(LTO) |
-- enable-shared: | 启用共享 Python 库 libpython 的编译 |
-- with-ssl: | 编译安装ss1模块到Python3中(默认) |
5.编译安装Python3.11.6
6.测试Python3 运行
7.更新pip版本
三;windos 系统安装Python
1.安装Python程序
(1)双击Python安装包
2.安装vscode编译器
在Linux系统中,我们可以直接使用vi编辑器对Python代码进行编写,在Windows系统中,Python提供了IDLE编译器,但是使用起来很不友好,我们可以安装一个vscode编译工具,对Python进行编译。安装过程如下。
(1)双击安装包VSCodeUserSetup-x64-1.85.0,进入安装界面
(2)设置安装路径
(3)选择开始菜单文件
(4)选择附加任务组
(5)开始安装
(6)安装完成
3. 安装vscode插件
(1)安装简体中文
(2)安装Python插件
如图所示点击Extentions(扩展)按钮,在搜索区域输入“python”,然后选择Python插件进行安装,有了这个插件,就可以在vscode中编辑python代码了。
用同样的方法安装一个“black format”插件,该插件可以使用“Shift+Alt+F”组合键对Python代码进行格式化的处理,自动整理代码的书写规范,让代码看上去更美观。
四:Python的语法基础
1.标识
所谓的标识符就是对 变量、常量、函数、类 等对象起的名字。首先必须说明的是,Python语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不同,python 对于表示标识符的命名有如下规定:
> 标识符的长度不受限制,但其中的字符必须是字母、数字、或者下划线(_),而不能使用空格、连
字符、标点符号、引号或其他字符。
> 标识符的第一个字符不能是数字,而必须是字母或下划线。 > Python区分大小写 > 不能将Python关键字用作标识符。
a,abc,_id,等都是可以的。但是例如:$a(以$开头的是PHP的变量语法),~abc,123a 都是不可以的。这一点一定要注意。可能有人会问,中文可以作为标识符吗?答案是可以的。
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内置的数据类型有数字,字符串,元祖,列表和字典
数字类型包括整型、浮点型、布尔型等,声明时由Python 内置的基本数据类型管理变量,在程序的型,程序员不需要关心变量空间是什么类型,只需知道创建的变量中存放了一个数,通过编码对这个数值进行操作即可。后台实现数值与类型的关联,以及转换等操作。根据变量的值自动判断变量的
(1)整数和浮点型
整数使用整型表示,有小数位使用浮点型表示。
示例 1:为变量赋予整型和浮点型的数值
示例代码如下:
示例 1 的代码中,首先定义了变量x=123。此时的x值是整数,x即是整型变量。当执行语句x=1.98 时,x又成为了浮点型变量,由此可以看出,变量的类型是能改变的,与Java、C#语言等是有区别的。这是因为当 Python 给已经存在的变量再次赋值时,实际上是创建了一个新的变量,即使变量名相同,但标识并不相同,变量的标识可以使用id 函数输出。
(2)布尔型
布尔型是用于逻辑运算,有2个值 True、False,表示真和假。
示例 2:为变量赋布尔型数值
示例代码如下:
代码定义了变量 f=True。if 是判断语句,为真则执行print 语句,最后输出的是1,说明语句执
行成功。
使用比较运算符返回的结果是布尔值。
示例 3:获取比较运算符的运算结果示例代码如下:
(3)Python 运算符
Python 中使用的算术运算符和数学运算中使用的符号基本相同,由+、-、*、/(加、减、乘、除)和小括号组成,运算顺序也是先乘除后加减、小括号优先。下面演示几个示例说明它们的使用方法。
示例 4:四则运算示例代码如下:
Python 还有两个算术运算符是%和 ** ,分别实现求模和求幂运算。
求模运算取余数,求幂是计算累乘的结果。
示例5:求模和求幂运算示例代码如下:
2:字符串
Python 中的字符串类型是一组包含数字、字母和符号的集合,作为一个整体使用。
(1)字符串使用
在 Python 中有 3 种表示字符串的方式,单引号、双引号、三引号。
示例 6:Python 字符串的 3 种表现方式
示例代码如下:
示例6 中,变量 name 使用单引号,变量 address 使用双引号,变量content 使用三引号,它
们都是合法的 Python 字符串类型。需要注意的是,单引号和双引号作用是一样的,可以根据习惯使用。但定义多行文字时,必须要使用三引号。
(2)使用字符串注意事项
字符串的定义方式单引号、双引号、三引号大部分情况下作用是相同,但在特殊情况中使用也有所区别,下面列出需要注意的地方。
1)单引号、双引号、三引号都是成对出现的。如果以单引号开头就要以单引号结尾,不能混合使用表示字符串。如下代码就会报错:
2)如果字符串中单独出现单引号或双引号,可以使用另一种引号定义。
示例 7:使用引号定义字符串的值
示例代码如下:
字符串变量 title1 中出现了单引号,需要使用双引号定义,字符串变量title2 中出现了双引号,需要使用单引号定义。当字符串中同时出现单引号和双引号,就需要使用三引号进行定义。
3)当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义。Python
符是“\”,只要在特殊字符前面加上“\”,就可以输出原字符,而不需关注定义字符串使用的是单
引号还是双引号。
示例8:使用转义字符为字符串赋值示例代码如下:
备注:
Python 的常用转义字符
\ (在行尾时)续行符 \' 单引号 \" 双引号 \n 换行 \v 纵向制表符 \t 横向制表符 \r 回车 \\ 反斜杠符号
(3)字符串的其它用法
Python 的字符串可以进行乘法(*)的操作,使用一个整型数字和字符串相乘。
例如用数字 3 乘字符串“a”,结果是字符串”aaa”,等同于将字符串“a”连接了3遍,代码和运行
结果如下:
3:列表
列表(list)是Python 中非常重要的数据类型,通常作为函数的返回类型。由一组元素组成,列表可以实现添加、删除和查找操作,元素值可以被修改。
(1)列表的定义
列表是Python 内置的一种数据结构,由中括号“[]”定义,元素以逗号分开,语法如下。
语法:
列表名=[元素 1,元素2,…
(2)列表的取值
1)列表中的数据是有序的,按定义时的顺序排好,可以单独取出某一位置元素的数值。
语法:
列表名[索引位置]
示例9:使用列表保存元素的数值,并输出示例代码如下:
示例 9代码中,定义的列表 num 中,存储有三个字符串,其顺序是‘001’、‘002’、‘003’,
取值时用列表名 num 加上中括号,数字表示索引位置。需要注意:列表中元素的是由0开始,以1为
单位依次递增。
2)可以获取列表指定范围的一组元素,语法如下。
语法:
列表名[起始位置:终止位置]
可以输出起始位置到终止位置前的元素,不包括终止位置。
示例 10:输出列表中指定位置的元素
示例 10中,num 列表后的[0:1]表示获取由索引 0 开始至索引位置 1之前的元素,所以
只能取到第1 个元素;而[0:2]则可以取到索引 2之前的元素,其它的与此相同。
(3)修改列表元素值
可以修改指定位置的列表元素值,语法如下。
语法:
列表名[索引位置]=值
示例11:修改列表中指定位置的元素值示例代码如下:
定义列表 num时,索引位置 0 的元素是“001”,修改它的值为“004”后,索引位置0元素的值变为“004”。
(4)添加列表元素
可以采用两种方式,添加向列表中添加元素。
1)可以把一个元素添加到列表的最后,语法如下。
语法:
列表名.append(元素值)
示例 12:将元素添加到列表的最后位置示例代码如下:
2)在列表指定位置前插入新的元素,语法如下。
语法:
列表名.insert(索引位置,元素值)
示例 13:将元素添加到列表中指定的位置示例代码如下:
示例 13 中,语句 num.insert(1,'004')的作用是在列表 num 的索引位置 1 之前插入字符串
‘004’。初始时,num有3个元素,索引位置1的当前元素是’002‘,执行示例 16的代码后,字
符串 ‘004’插入到‘002’的前面。
(5)删除列表元素
可以删除列表指定索引位置的元素,语法如下。
语法:
del 列表名[索引位置]
示例 14:删除列表中第 2 个元素示例代码如下:
示例 14中,首先,执行语句del num[1],使用del 删除索引为1的元素’002'。然后,输
出列表 num 中所有元素时,列表中已经不存在’002’元素。
(6)查找列表元素
使用 in 关键字可以查找列表中是否存在指定的数值,语法如下。
语法:
元素值 in 列表名
返回布尔类型 True 或 False。如果查找到,返回 True;否则,返回False。示例 15:使用关键
字 in 查找列表中是否存在指定的数值示例代码如下:
执行示例 15 的代码,因为字符串‘001’在列表中存在,返回True。而由于字符串‘004’
在列表中不存在,则返回 False。
(7)合并列表
多个列表可以使用加号(+)进行合并,加号后面的列表元素会追加到前面列表的后面。
使用+合并两个列表
示例代码如下:
示例 16:
示例 16 中,定义了两个列表 num1 和 num2。使用加号进行合并操作时,加号后面的列表元素会追加到前面列表的后面。
(8)重复列表
使用星号(*)可以对列表进行重复操作,与单独字符串乘法操作相似。
的元素值
示例代码如下:
示例 17:使用*重复输出列表
示例 17 中,语句 num= num1*5 表示为 num 赋值时,将 num1 的元素重复出现 5 遍。
(9)列表常见问题
Python 中,使用列表实现各种操作时,可能会得到意外的结果。其中最常见的问题是索引越界。
索引越界是使用列表时经常犯的一个错误。如列表中有3个元素,因为索引位置是从0开始计算,所以
最大的索引值是2。如果索引值大于2,表示索引是越界的,程序无法执行。
示例 17:索引越界
(1)索引越界
示例代码如下:
(2)
索引值为5时,大于最大的索引值2,程序报索引越界错误。那么,当使用小于0的负数索引时会不会出错呢?答案是不会,因为Python 列表的负数索引表示的是由列表的末尾进行反向的取值,也就是最后一个元素的位置也可以使用索引-1取值,倒数第二个索引是-2,向前依次递减,示例代码如下:
(3)当获取列表指定范围的一组元素时,不存在列表索引越界的问题,示例代码如下:
列表 num 中有 3 个元素,获取列表范围时指定了最大位置是5,超出了最大索引值,程序可以正
常执行,并没有报错。
(4)获取列表指定范围时可以同时使用正数和负数索引,示例代码如下:
表示获取由索引位置 0 元素开始,到-1元素之前的所有元素。
(5)列表元素也可以是列表,示例代码如下:
上述案例定义了列表 num,它里面的每一个元素也是一个列表,使用num[0]表示取到的是第一个元素值,对应的是一个列表。使用 num[0][0]表示取到第一个元素列表的第一个值,使用print num[2][1]表示取到第三个列表的第二个元素值。
4:元组元组(tuple)和列表类似,也是Python的一种数据结构,由不同的元素组成,每个元素可以存储同类型的数据,如字符串、数字、甚至元组。但元组是不可以修改的,即元组创建后不能做任何修改操作。元组通常表示一行数据,而元组中的元素表示不同的数据项。
(1)元组的创建
元组由关键字和小括号定义,一旦创建后就不能修改元组的内容,定义的语法如下。
语法:
元组名=(元素1,元素2, .. )
与列表最大的不同是:元组是写保护的,元组一旦创建就不能做任何的修改。下面定义一个元组,尝
试对它修改,示例代码如下:
定义元组 num后,尝试对索引位置 0 的元素值进行修改,程序直接报错。元组与列表的区别如表下
表所示。
列表 元组 元素
方括号
圆括号
可变性
可变
不可变
操作
添加、修改、删除、搜索
搜索
在使用时元组与列表区别并不大,那么为什么要使用元组呢?主要是因为元组是不可变速度比列表快,而且因为它不可以修改,数据要更加安全,所以要根据实际情况决列表,使程序更加高效合理。
(2)元组的操作
1)元组具有不可变性,所以相比列表的操作要少,其中取值操作与列表是完全相同的,示例代码如下:
与列表的取值操作完全相同,都是使用方括号、索引获取指定位置的数值。
2)元组不允许删除元组中的元素值,但是可以删除整个元组,语法如下。
语法:
del 元组名
示例 18:元组删除报错代码如下:
定义元组 num 后,删除其中的某一个元素程序报错。删除整个元组后,再想使用元组,报未定义变量的错误。
3)元组和列表可以做互相转换操作,元组转换为列表的语法如下。
语法:
list(列表名)
示例 19:元组转换为列表代码如下:
这段代码首先定义了元组 num,然后把它转换为列表 listNum,对列表 listNum 可以做修改元素的操作,使用 type()函数输出了元组的列表的类型。
列表转换为元组的语法如下。
语法:
tuple(列表名)
示例 25:列表转换为元组
代码如下:
可以看到转换是成功的,输出的类型正确。
5:字典
字典(dict)是Python 中重要的数据类型,字典是由“键-值”对组成的集合,字典中的值通过键来引用。
(1)字典的创建
字典的每个元素是键值对(key-value)组成,键值之间使用冒号分隔,“键值对”之间用 逗号隔开,并且被包含在一对花括号中。键是唯一的,不能存在多个相同的值,且它的值是无序的,键可以是数字、字符串、元组,一般用字符串作为键。定义的语法如下。
语法:
字典名={键1:值1,键2:值2,…}
示例代码如下:
定义了一个字典 mobile,存储的键是姓名、值是电话号码,由此,姓名和电话号码就构成了对应的系。可以使用type()函数查看到它的类型是‘dict’。
(2)字典的取值操作
字典的取值与元组和列表有所不同,元组和列表都是通过数字索引获取对应位置的值,过键获取对应的值。
需要注意的是:键是唯一的,而不同键的值却可以相同,当定义多个键相同时,字典中 只会保留最后一个定义的键值对,示例代码如下:
(3)字典的添加、修改、删除操作
1)字典添加新元素只需要对新键进行赋值即可,字典中不存在的键,会自动进行添加。
字典键值对的键名是区分大小写的。同一个单词,如果大小写不同,则被视为不同的键,
示例代码如下:
2)修改字典中的元素,直接使用存在的键赋值,
示例代码如下:
3)删除字典中的元素,使用 del 函数
示例代码如下:
使用del 函数删除键“Tom”,字典中的对应键不存在了。
6:字典的常见问题
字典不能使用“+”运算符执行连接操作。
示例代码如下:
从上面代码的运行结果可以得到结论:使用“+”运算符直接报错。