目录
python初识
python优势
Python允许你将程序分割为不同的模块,以便在其他的Pythnon程序中重用。Python内置提供了
大量的标准模块,你可以将其用作程序的基础,或者作为学习Python编程的示例。这些模块提供了诸如文件I/0、系统调用、Socket支持,甚至类似Tk的用户图形界面(GUI)工具包接口。
Python是一门解释型语言,因为无需编译和链接,你可以在程序开开发中节省宝贵的时间。Python解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。你甚至还可以把它当做一个桌面计算器。
python特征
Python 让程序编写的紧凑和可读。用Python编写的程序通常比同样的C、C++或Java程序更
短小,这是因为以下几个原因:
高级数据结构使你可以在一条语句中表达复杂的操作;
语句组使用缩进代替开始和结束大括号来组织;
变量或参数无需声明。
python应用领域
Python是一种通用编程语言,具有广泛的应用领域。也是一门学习曲线非常平滑的编程语言,正因如此,Python也成了众多编程入门同学的首选!
数据科学和机器学习
Python在数据科学和机器学习领域非常流行,因为它有许多强大的库和框架,如NumPy、Pandas、Scikit-learn和TensorFlow等。
web开发
Python也可以用于Web开发,因为它有Django和Flask等流行的Web框架。
自动化测试
Python还可以用于自动化测试,因为它有许多流行的测试框架,如unittest和pytest等。
网络爬虫
Python还可以用于网络爬虫,因为它有许多强大的库和框架,如Beautifulsoup、Scrapy和
Requests等。
游戏开发
Python也可以用于游戏开发,因为它有许多流行的游戏引擎,如Pyggame和Panda3D等。
数据分析
Python还可以用于数据分析,因为它有许多流行的库和框架,如NumPy、Pandas和Matplotlib等。
数据可视化
Python还可以用于数据可视化,因为它有许多流行的库和框架,如Matplotlib、Seaborn 和 Bokeh
linux环境中安装python
下载python3.11.6
可以在Python的官方网站下载,网址是http://www.pythorn.org
安装依赖包
设置yum仓库
安装依赖包
yum -y install gcc zlib zlib-devel libffi libffi-dlevel ,yum -y install readline-devel
yum -y install openssl-devel openssl11 openssli1devel , export CFLAGS=$(pkg-config --cflags openssl11);export LDFLAGS=$(pkg-config --libs openssl11)
解压python压缩包
tar zxvf 软件包名
安装python
cd 解压后的文件名/
./config --prefix=/usr/local/python
此处有可选配置项,含义如下:
--enable-optimizations:用PROFILE TASK启用以配置文件主导的优化(PGO)
--with-lto:在编译过程中启用链接时间优化(LTO)
--enable-shared:启用共享Python库libpython 的编译
--with-ssl:编译安装ssl模块到Python3中(默认)
编译及安装
编译安装Python-3.11.6执行make,make install
建立软连接
[root@master Python-3.11.6]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@master Python-3.11.6]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
测试python3运行
安装设置完毕,测试Python3的运行情况
[root@master Python-3.11.6]# python3
设置国内pip更新源
pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip3 config set install.trusted-host mirrors.aliyun.com
更新pip版本(必须更新)
[root@localhost ~]# pip3 install --upgrade pip
windows系统安装python
安装python程序
双击安装包python
安装完成后界面
安装vscode编译器
在Linux系统中,我们可以直接使用vi编辑器对Python代码进行编写,在Windows系统中,Python
提供了IDLE编译器,但是使用起来很不友好,我们可以安装一个vscode编译工具,对Python进行编译。
双击安装包vsc进入安装界面
设置安装路径
选择开始菜单文件夹
选择附加任务
开始安装
安装后直接开始运行
安装vsc插件
安装python插件
安装black format插件(选择安装)
python语法基础
标识符
标识符就是对变量、常量、函数、类等对象起的名字。
首先必须说明的是,Python语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不
同,python对于表示标识符的命名有如下规定:
标识符的长度不受限制,但其中的字符必须是字母、数字、或者下划线(),而不能使用空格、连
字符、标点符号、引号或其他字符。
标识符的第一个字符不能是数字,而必须是字母或下划线。
Python区分大小写。
不能将Python关键字用作标识符。
python保留字
Python保留字,也叫关键字,是Python语言官方确定的用作语法功能的专用标识符,不能把它们用
作任何自定义标识符名称。关键字只包含小写字母。可以通过python提供的库输出这些关键字:
Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字。
注释
注释有说明性质的、帮助性质的,它们在代码执行过程中相当于不存在,透明的。
单行注释
Python中,以符号"#"为单行注释的开始,从它往后到本行的末尾,都是注释内容。
格式:#单行注释
多行注释
Python没有真正意义上的多行注释(块注释)。
语法:#第一行注释
#第二行注释
#第三行注释
语句与缩进
语句
在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。python的标准语言不需要使用分号。简单的换行就表示语句已经结束。
代码块
为完成某一特定功能而联系在一起的一组语句构成一个代码块。有制断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号(:)结束。
Python最具特色的语法就是使用缩进来表示代码块,不需要使用大括号像PHP、JAVA等语言都
是使用({})来表示代码块的。python一般用四个空格来缩进。在pycharm或vscode中tab自动
回转成4个空格。在Linux环境中,如VIM编辑器,建议使用空格
多行语句
前面的例子中都是多条语句在同一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠。
(\)来实现多行语句。
>>> print("ni hao\
wo de ming zi \
.. jiao zhang san")
pass语句
pass语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用pass
语句:
当你不知道后面的代码怎么写的时候
当你不需要写代码细节的时候
当语法必须,又没有实际内容可写的时候
其它的一些你觉得需要的场景
a=10
if a>5:
print("a大于5")
else:
pass
python常用数据类型
Python内置的数据类型有数字、字符串、元组、列表和字典。
数字
数字类型包括整型、浮点型、布尔型等,声明时由Python内置的基本数据类型管理变量,在程序的
后台实现数值与类型的关联,以及转换等操作。
整形和浮点型
整数使用整型表示,有小数位使用浮点型表示。
示例1:为变量赋予整型和浮点型的数值
示例代码如下:
X = 123
print (x)
X = 1.98
print (x)
布尔型
布尔型是用于逻辑运算,有2个值True、False,表示真和假假。
示例2:为变量赋布尔型数值
示例代码如下:
f = True
print (f)
if(f):
print(1)
python运算符
Python中使用的算术运算符和数学运算中使用的符号基本相|同,由+、-、*、/(加、减、乘、除)
和小括号组成,运算顺序也是先乘除后加减、小括号优先。下面演示几个示例说明它们的使用方法。
示例4:四则运算示例代码如下:
>>> x,y = 10,2
>>> print (x+y,x*y,x/y)
12 20 5.0
print (5 + 8 * 3)
29
print ((5+8)*3)
39
>>>print(5+ 8*3/4)
11.0
字符串
Python中的字符串类型是一组包含数字、字母和符号的集合,作为一个整体使用
字符串的使用
在Python中有3种表示字符串的方式,单引号、双引号、三引号。
示例6:Python字符串的3种表现方式
示例代码如下:
name '课工场'
address "成府路207号"
content '''每时每课,给你机会'''
print (name)
print (address)
print (content)
使用字符串的注意事项
字符串的定义方式单引号、双引号、三引号大部分情况下作用是相同,但在特殊情况中使用也有所区别,下面列出需要注意的地方。
单引号、双引号、三引号都是成对出现的。如果以单引号开头就要以单引号结尾,不能混合使用表示字符串。
如果字符串中单独出现单引号或双引号,可以使用另一种引号定义。
字符串变量title1中出现了单引号,需要使用双引号定义,字符串变量title2中出现了双引号,
需要使用单引号定义。当字符串中同时出现单引号和双引号,就需要使用三引号进行定义
当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义。
备注:
Python 的常用转义字符
\(在行尾时)续行符
\\反斜杠符号
\’单引号
\"双引号
\n换行
\v纵向制表符
\t横向制表符
\r回车
字符串其他用法
Python 的字符串可以进行乘法(*)的操作,使用一个整型数字和字符串相乘。
例如用数字3乘字符串"a",结果是字符串"aaa",等同于将字符串"a"连接了3遍,代码和运行
结果如下:
print (3*'a')
列表
列表(list)是Python中非常重要的数据类型,通常作为函数的返回类型。由一组元素组成,列表可
以实现添加、删除和查找操作,元素值可以被修改。
列表的定义
列表是Python内置的一种数据结构,由中括号"[]"定义,元素以逗号分开,语法如下。
语法:
列表名=[元素1,元素2,...
列表的取值
1)列表中的数据是有序的,按定义时的顺序排好,可以单独取双出某一位置元素的数值。
语法:
列表名[索引位置]
示例:使用列表保存元素的数值,并输出示例代码如下:
>>> num :['001','002', 003']
>>> print(num)
>>> print (num[0])
>>> print (num[1])
>>> print (num[2])
可以获取列表指定范围的一组元素,语法如下。
语法:
列表名[起始位置:终止位置]
可以输出起始位置到终止位置前的元素,不包括终止位置。
示例:输出列表中指定位置的元素
>>>num = ["001',002,,003']
>>> print (num[0:1])
[.001.]
>>>print(num[0:2])
['001., '002']
>>>print(num[0:3])
['001,, 002,, ,003']
>>>print(num[1:2])
['002']
>>> print (num[1:3])
['002', '003']
修改列表元素值
可以修改指定位置的列表元素值,语法如下。
语法:
列表名[索引位置]=值
修改列表中指定位置的元素值示例代码如下:
>>>['001',002', 003']
num 1
>>>num[0]="004"
>>> print (num)
['004', '002', '003']
添加列表元素
可以采用两种方式,添加向列表中添加元素。
可以把一个元素添加到到表的最后,语法如下。
语法:
列表名.append(元素值)
示例:将元素添加到列表的最后位置示例代码如下:
>>>num = ['001',002', 003']
>>> print (num)
['001', 002', '003']
>>>num.append('004')
>>> print (num)
['001,, 002', ,003,, 004']
查找列表元素
使用in关键字可以查找列表中是否存在指定的数值,语法如下
语法:
元素值in列表名
返回布尔类型True或False。如果查找到,返回True;否否则,返回False。示例15:使用关键字in查找列表中是否存在指定的数值.
>>>num =[001',,002', 003']
>>>'001,001'in num
True
>>>'004'in num
False
合并列表
多个列表可以使用加号(+)进行合并,加号后面的列表元素会追加到前面列表的后面。
使用+合并两个列表
示例代码如下:
>>>num1 = ['001', 002']
>>>num2 = ['003', '004']
>>> numAll = num1 + num2
>>> print (numAll)
['001', '002', '003', '004
>>> numAll = num2 + num1
>>> print (numAll)
['003', 004', '001', 002']
重复列表
使用星号(*)可以对列表进行重复操作,与单独字符串乘法操作相似。使用*重复输出列表的元素值
示例代码如下:
>>>num1 = ['001', '002']
>>>num = num1*5
>>> print (num)
["001,, '002,, ,001,, ,002,, ,001,, '001,,002', '001', '002']
列表常见的问题
Python中,使用列表实现各种操作时,可能会得到意外的结果。其中最常见的问题是索引越界。索引越界是使用列表时经常犯的一个错误。如列表中有3个元素,因为索引位置是从0开始计算,所以最大的索引值是2。如果索引值大于2,表示索引是越界的,程序无法执行。
(1)索引越界
示例代码如下:
示例代码如下:
num1 = ['001', 002', ' 003']
print (num1[5])
Traceback (most recent call last): File "<stdin>"line 1,in<module>
IndexError:list index out of range
负值索引
索引值为5时,大于最大的索引值2,程序报索引越界错误。那么,当使用小于0的负数索引时会不会
出错呢?答案是不会,因为Python列表的负数索引表示的是由列表的末尾进行反向的取值,也就是最后一个元素的位置也可以使用索引-1取值,倒数第二个索引是-2,向前依次递减,示例代码如下:
>>>num1 = ['001,,002,, 003']
>>>print(num1[-1])
003
>>> print (num1[-2])
002
>>> print(num1[-3])
001
当获取列表指定范围的一组元素时,不存在列表索引越界的问题,示例代码如下:
>>>num=['001,,002', 003']
>>> num1 = num[1:5]
>>> print(num1)
['002', '003']
列表num中有3个元素,获取列表范围时指定了最大位置是5,超出了最大索引值,程序可以正常执行,并没有报错。
元组
元组(tuple)和列表类似,也是Python的一种数据结构,由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。但元组是不可以修改的,即元组创建后不能做任何的修改操作。元组通常表示一行数据,而元组中的元素表示不同的数据居项。
元组的创建
元组由关键字和小括号定义,一旦创建后就不能修改元组的内容,定义的语法如下
语法:
元组名=(元素1,元素2,....)
与列表最大的不同是:元组是写保护的,元组一旦创建就不能做任何的修改。
列表 | 元组 | |
元素 | 方括号 | 圆括号 |
可变性 | 可变 | 不可变 |
操作 | 添加,修改,删除 | 搜索 |
在使用时元组与列表区别并不大,那么为什么要使用元组呢?三主要是因为元组是不可变
的,操作定是使用元组还是速度比列表快,而且因为它不可以修改,数据要更加安全,所以以要根据实际情况决列表,使程序更加高效合理。
元组的操作
元组具有不可变性,所以相比列表的操作要少,其中取值操作与列表是完全相同的,示例代码如下:
num = ('001',002',003')
print (num[0])
001
print (num[2])
003
与列表的取值操作完全相同,都是使用方括号、索引获取指定定位置的数值.
元组不允许删除元组中的元素值,但是可以删除整个元组,语法如下
语法:
del元组名
>>>num = ('001',002,,003')
>>>del num[0]
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
>>> print(num)
('001', ,002,, 003')
>>> del num _
>>> print (num)
Traceback (most recent call last): File "<stdirn>", line 1, in <module>
NameError: name 'num'is not defined
定义元组num后,删除其中的某一个元素程序报错。删除整个元组后,再想使用元组,报未定义变
量的错误。
元组和列表可以做互相转换操作,元组转换为列表的语法如下
语法:
list(列表名)
示例19:元组转换为列表代码如下:
num = ('001',002', 003')
>>>listNum = list(num)
>>> print (listNum)
['001', '002', '003']
>>>listNum[0]='004'
>>> print (listNum)
['004', '002', '003']
>>>print(type(num))
<class 'tuple'>
>>>print(type(listNum))
<class 'list'>
字典
字典(dict)是Python中重要的数据类型,字典是由"键-值"对组成的集合,字典中的值通过键来引用。
字典的创建
字典的每个元素是键值对(key-value)组成,键值之间使用冒号分隔,"键值对"之间用 逗号隔开,并且被包含在一对花括号中。键是唯一的,不能存在多个相同的值,且它的值是无序的,键可以是数字、字符串、元组,一般用字符串作为键。定义的语法如下。
语法:
字典名={键1:值1,键2:值2,...)
>>> mobile = {'Tom': '199111111', 'Alice': '1992222222',Bob':19933333333333'
>>> print (mobile)
{'Alice': '19922222222', 'Bob': '19933333333",Tom':'199111111111'}
>>> print (type(mobile))
<class 'dict'>
字典的取值操作
字典的取值与元组和列表有所不同,元组和列表都是通过数字索引获取对应位置的值,而字典是通过键获取对应的值。
>>> mobile = {'Tom': '199111111', 'Alice':'19922222222','Bob': '1993333333'
>>>print(mobile["Tom"])
199111111111
>>> print (mobile["Bob"])
199333333333
字典的添加修改删除
字典添加新元素只需要对新键进行赋值即可,字典中不存在的键,会自动进行添加。
>>> mobile = {'Tom':'1991111111', Alice':'19922222222
>>> mobile['Bob'] = '1993333333
>>> print (mobile)
{'Tom': '1991111111', 'Alice': '199222222222', 'Bob':199333333333'
修改字典中的元素,直接使用存在的键赋值。
示例代码如下:
>>> mobile = {'Tom': '1991111111', 'Alice': '1992222222'
>>> mobile['Tom'] = '1993333333"
>>> print (mobile)
{'Tom': '199333333333, Alice': '19922222222'}
删除字典中的元素,使用del函数
>>> mobile = {'Tom': '199111111', 'Alice': 19922222222"
>>> del mobile['Tom']
>>> print (mobile)
{'Alice': '199222222222'}
使用del函数删除键"Tom",字典中的对应键不存在了。
字典的常见问题
字典不能使用"+"运算符执行连接操作。
示例代码如下:
>>> mobile1 = {'Tom': '1991111111', 'Alice': '1992222222'}
>>> mobile2 = {'Tom2': 19911111111', 'Alice2': 1992222222
>>> print (mobile1 + mobile2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'dict' and 'dict