目录
当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义
Python是一种广泛使用的编程语言,它因其简单易学、功能强大和高度可扩展性而受到开发者的青睐。Python的优势主要体现在以下几个方面
易于学习和使用
Python的语法简洁直观,对新手友好,使得初学者可以快速上手并开始编程。它的代码结构清晰,可读性强,类似于阅读英语,这使得Python代码易于理解和维护。Python还支持伪代码的编写方式,这使得算法的实现更加直观和简单。
强大的标准库和第三方库
Python拥有丰富的标准库和第三方库,覆盖了从网络编程到数据分析等各个领域。这些库为开发者提供了大量现成的工具和框架,使得开发者可以快速构建应用程序,无论是小型脚本还是大型企业级应用。
跨平台兼容性
作为一种解释型语言,Python具有良好的跨平台兼容性,可以在多种操作系统上运行,包括Windows、Linux和macOS。这使得Python程序可以在不同的环境中无缝迁移和部署。
开源和免费
Python是一种开源语言,其解释器和内置模块的源代码都是公开的,这意味着开发者可以自由地查看、修改和分发Python代码。同时,Python也是免费的,即使用于商业目的,也不需要支付任何费用。
面向对象编程
Python支持面向对象编程(OOP),这是现代编程语言的一个重要特性。它允许开发者通过类和对象来组织代码,使得代码更加模块化和可重用。
可扩展性
Python允许开发者使用C或C++等其他语言编写扩展模块,以提高程序的性能。这种可扩展性使得Python可以应用于需要高性能计算的领域,如科学计算和数据分析。
尽管Python具有诸多优势,但它也存在一些缺点,例如运行速度相对较慢,这是由于其解释型语言的特性。此外,Python 2和Python 3之间的不兼容性也给一些开发者带来了迁移和升级的挑战。然而,Python的优势仍然使其成为了许多开发者和企业的首选编程语言
Python 让程序编写的紧凑和可读。用 Python编写的程序通?常比同样的C、C++或Java程序更短小,这是因为以下几个原因:
高级数据结构使你可以在一条语句中表达复杂的操作
语句组使用缩进代替开始和结束大括号来组织
变量或参数无需声明
Python是一种通用编程语言,具有广泛的应用领域。也是一门学习曲线非常平滑的编程语言,正因如此,Python也成了众多编程入门同学的首选!
数据科学和机器学习
Python在数据科学和机器学习领域非常流行,因为它有许多强大的库和框架,如NumPy、Pandas、
Scikit-learn和TensorFlow等
Web开发
Python也可以用于Web开发,因为它有Django和Flask等流行的Web框架
自动化测试
Python还可以用于自动化测试,因为它有许多流行的测试框架,如unittest和pytest等。
网络爬虫
Python还可以用于网络爬虫,因为它有许多强大的库和框架,如 Beautifulsoup、Scrapy和
Requests
游戏开发
Python也可以用于游戏开发,因为它有许多流行的游戏引擎,如Pygame和Panda3D等
数据分析
Python还可以用于数据分析,因为它有许多流行的库和框架,如NumPy、Pandas和Matplotlib等
在python官网下载,网址 http://python.org
设置yum仓库设置好centos基础源和epel扩展源
[root@localhost ~]# yum -y install gcc zlib zlib-devel libffi libffi-devel
[root@localhost ~]# yum -y install readline-devel
[root@localhost ~]# yum -y install openssl-devel openss111 openssl11-devel
[root@localhost ~]# export CFLAGS=$(pkg-config --cflags openssl11)
[root@localhost ~]# export LDFLAGS=$(pkg-config --libs openss111)
[root@localhost ~]# tar xvf Python-3.11.6.tar.xz
[root@master home]#_cd Python-3.11.6/
[root@master Python-3.11.6]# ./configure --prefix=//usr/local/python3
[root@master Python-3.11.6]# make
[root@master Python-3.11.6]# make install
[root@master Python-3.11.6]# 1n -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
[root@master Python-3.11.6]# python3
Python 3.11.6 (default, Apr 22 2020, 17:24:20)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license"for more information.
>>> print('hello world')
>>> hello world
[root@localhost ~]# cat <<EOF> /root/.config/pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simplLe/
[install]
trusted-host=mirrors.aliyun.com
[root@localhost ~]# pip3 install --upgrade pip
在Linux系统中,我们可以直接使用vi编辑器对Python代码进行编写在Windows系统中,Python提供了IDLE编译器,但是使用起来很不友好,我们可以安装一个vscode编译工具,对Python进行编译。安装过程如下
所谓的标识符就是对变量、"常量、函数、类等对象起的名字首先必须说明的是,Python语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不
同,python对于表示标识符的命名有如下规定:
标识符的长度不受限制,但其中的字符必须是字母、数字、或者下划线(),而不能使用空格、连字符、标点符号、引号或其他字符。
标识符的第一个字符不能是数字,而必须是字母或下划线。Python区分大小写。
不能将Python关键字用作标识符。
Python保留字,也叫关键字,是Python语言官方确定的用作语法去功能的专用标识符,不能把它们用作任何自定义标识符名称。关键字只包含小写字母。可以通过python提供的库输出这些关键字:Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字。如下所示
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'as', 'as', 'assert', 'async', 'await', 'break', 'class',
continue', 'def', 'del', 'elif', 'except', 'except', 'finallly', 'for', 'from', 'global'
'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or','pass','raise','return'
'try', 'while', 'with', 'yield']
我们写的程序里,不光有代码,还要有很多注释。注释有记说明性质的、帮助性质的,它们在代码执行过程中相当于不存在,透明的
Python中,以符号"#"为单行注释的开始,从它往后到本行的末尾,都是注释内容
Python没有真正意义上的多行注释(块注释)
在代码中,能够完整表达某个意思、操作或者逻辑的最短代码马,被称为语句。这里强调一下,python的标准语言不需要使用分号。简单的换行就表示语句已经结東
>>> a=123
>>>b=456
>>> print("hello world")
为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号(:)结束,比如:
10 = 10
if a > 5:
print("a大于5")
else:
print("a小于5")
前面的例子中都是多条语句在同一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠(\)来实现多行语句
print("ni hao\
...wodemingzi\
...jiao zhang san")
pass语句是占位语句,它什么都不做,只是为了保证语法的正确性而写
a=10
if a>5:
print("a大于5")
else:
pass
Python内置的数据类型有数字、字符串、元组、列表和字典
数字类型包括整型、浮点型、布尔型等,声明时由Python内置的基本数据类型管理变量,在程序的后台实现数值与类型的关联,以及转换等操作。根据变量的值自动动判断变量的类型,程序员不需要关心变量空间是什么类型,只需知道创建的变量中存放了一个数,通过编码对这个数值进行操作即可
整数使用整型表示,有小数位使用浮点型表示,如为变量赋予整型和浮点型的数值
123
>>> print (x)
>>> x = 1.98
>>> print (x)
布尔型是用于逻辑运算,有2个值True、False,表示真和假,如为变量赋布尔型数值
>>> f = True
print (f)
<<>>
>>> if(f):
print(1)
执行结果为1
Python中使用的算术运算符和数学运算中使用的符号基本相同,由+、-、*、/(加、减、乘、除)和小括号组成,运算顺序也是先乘除后加减、小括号优先。下面演示几个示例说明它们的使用方法,示例:四则运算示例代码如下
>>> 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 还有两个算术运算符是%和**,分别实现求模和求幂运算
求模运算取余数,求幂是计算累乘的结果,
>>> 8%5
>>> 8%4
>>> 2**2
>>> 2**4
Python中的字符串类型是一组包含数字、字母和符号的集合,作为一个整体使用
在Python中有3种表示字符串的方式,单引号、双引号、三引号
>>> name= 'asd'
>>> address= ''sad''
>>> content= '''das'''
>>> print (name)
>>> print (address)
>>> print (content)
字符串的定义方式单引号、双引号、三引号大部分情况下作用用是相同,但在特殊情况中使用也有所区别,下面列出需要注意的地方
>>>name="大苏打'
SyntaxError: EOL while scanning string litera1>>> name = ''大苏打'''
SyntaxError: EOL while scanning string litera1
>>> title1 = "Let' Go! "
>>> print (title1)
Let' Go!
>>> title2 = 'Let" Go !'
>>> print (title2)
Let" Go !
>>> title3 = ''Let' Go ! Let'' Go !'''
>>> print (title3)
Let'Go ! Let"Go !
当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义
符是"\",只要在特殊字符前面加上"\',就可以输出原字符,而不需关注定义字符串使用的是单引号还是双引号
>>>title= 'Let\' Go!
>>> print (title)
Let' Go!
>>> title = "Let\" Go!"
>>> print (title)
Let" Go!
\(在末尾时) | 续行符 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\” | 双引号 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横行制表符 |
\r | 回车 |
Python 的字符串可以进行乘法(*)的操作,使用一个整型数字和字符串相乘。
列表(list)是Python中非常重要的数据类型,通常作为为函数的返回类型。由一组元素组成,列表可以实现添加、删除和查找操作,元素值可以被修改
列表是Python内置的一种数据结构,由中括号"[]"定义,元素以逗号分开,语法
列表名 = [元素1 ,元素2
列表中的数据是有序的,按定义时的顺序排好,可以单独取出某一位置元素的数值
>>> 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']
可以指定位置修改列表元素值 语法
列表名[索引位置]=值
可以采用两种方式,添加向列表中添加元素
列表名,append(元素值) 语法
>>> num =:["001',002','003']
>>> print (num)
['001', '002', '003']
>>> num.append('004')
>>> print (num)
['001', '002', '003', '004']
语法 :列表名,insert(索引位置,元素值)
>>> num = ['001',002', 003']
>>> num.insert(1,'004')
>>> print (num)
[001', 004', 002', 003']
语法:del列表名[索引位置]
>>>num = ['001',002', 003']
>>> del num[1]
>>> print (num)
[001','003']
语法:元素值in列表名
返回布尔类型True或False。如果查找到,返回True;否则,返回False。示例15:使用关键
字in查找列表中是否存在指定的数值
>>> num = ['001', 002', 003']
>>> '001' in numTrue
>>> '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']
Python中,使用列表实现各种操作时,可能会得到意外的结果。其中最常见的问题是索引越界。索引越界是使用列表时经常犯的一个错误。如列表中有3个元素,因为索引位置是从0开始计算,所以最大的索引值是2。如果索引值大于2,表示索引是越界的,程序无法执行
浅拷贝问题 索引越界错误 嵌套循环逻辑错误 元素赋值问题
元组(tuple)和列表类似,也是Python的一种数据结构,由不不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。但元组是不可以修改的,即元组创建后不能做任何的修改操作。元组通常表示一行数据,而元组中的元素表示不同的数据功烦元组由关键字和小括号定义,一旦创建后就不能修改元组的内容 语法
元组名= (元素1,元素2,...)
与列表最大的不同是:元组是写保护的,元组一旦创建就不能做任何的修改
>>>num = ('001',002,,003')
>>>delnum[0]
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
定义元组num后,尝试对索引位置0的元素值进行修改,程星序直接报错。元组与列表的区别如表下
表所示
列表 | 元组 | |
元素 | 方括号 | 圆括号 |
可变性 | 可变 | 不可变 |
操作 | 添加,修改,删除,搜索 | 搜索 |
在使用时元组与列表区别并不大,那么为什么要使用元组呢?主要是因为元组是不可变
的,操作速度比列表快,而且因为它不可以修改,数据要更加安全,所以要根据实际情况决
定是使用元组还是列表,使程序更加高效合理
元组具有不可变性,所以相比列表的操作要少,其中取值操作与列表是完全相同的
>>> num = ('001',002','003')
>>> print(num[0])
001
>>> print (num[2])
003
与列表的取值操作完全相同,都是使用方括号、索引获取指定位置的数值
元组不允许删除元组中的元素值,但是可以删除整个元组 语法 del 元组名
>>>num = ('001',002,,003')
>>>delnum[0]
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item cdeletion
>>> print (num)
('001', '002', "003")
>>>del num
>>>print (num)
Traceback (most recent call last): File "<stdin>", line 1, in <module>
NameError:name'num'isnotdefined
>>>num = ['001,,002', 003']
>>> tupleNum = tuple(num)
>>> print (type(num))
<class 'list'>
>>> print (type(tupleNum))
<class 'tuple'>
字典(dict)是Python中重要的数据类型,字典是由"键健-值"对组成的集合,字典中的值通过键来引用
字典的每个元素是键值对(key-value)组成,键值之间使用冒号分隔,"键值对"之间用 逗号隔开,并且被包含在一对花括号中。键是唯一的,不能存在多个相|同的值,且它的值是无序的,键可以是数字、字符串、元组,一般用字符串作为键。定义的语法如下
语法
字典名 = {键1:值1,键2:值2, ....)
>>> mobile = {'Tom': 19911111111', 'Alice': 1992222222','Bob': '19933333333'}
>>> print (mobile)
{'Alice': '199222222222', 'Bob': '199333333', 'Tom': '19911111111'}
>>> print (type(mobile))
<class 'dict'>
字典的取值与元组和列表有所不同,元组和列表都是通过数字索引获取对应位置的值,
而字典是通过键获取对应的值
>>> mobile = {'Tom': '199111111', "Alice': '19922222222','Bob': '19933333333'
>>> print (mobile["Tom"])
199111111111
>>> print (mobile["Bob"])
19933333333
字典添加新元素只需要对新键进行赋值即可,字典中不存在的键,会自动进行添加
>>> mobile = {'Tom':'19911111111', 'Alice': 1992222222'
>>> mobile['Bob'] = '1993333333"
>>> print (mobile)
{'Tom': '1991111111', 'Alice': '19922222222",'Bob':'199333333333'}
字典键值对的键名是区分大小写的。同一个单词,如果大小写不同,!则被视为不同的键
mobile = {'Tom': '199111111', tom': '1992222222222'}
print (mobile)
'tom': '19922222222', 'Tom': '1991111111'}
>>> mobile = {'Tom':'19911111111', Alice':'19922222222'
>>> mobile['Tom'] = '199333333"
>>> print (mobile)
"Tom': '19933333333', Alice': '1992222222"}
>>> mobile = {'Tom':'19911111111', Alice': 199222222222'}
>>>del mobile['Tom']
>>> print (mobile)
{'Alice': '199222222222"}
字典不能使用"+"运算符执行连接操作
>>> mobile1 = {'Tom':'1991111111','Alice':'199222222222'
>>> mobile2 = {'Tom2': 1991111111', 'Alice2': 199222222222
>>> print (mobile1 + mobile2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'odict' and 'dict