Python简介与入门

一:Python初识

1:Python优势

虽然 Python 易于使用,但它却是一门完整的编程语言:与Shel1脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。另一方面,Python 提供了比C更多的错误检査,并且作为一门 高级语言,它内置支持高级的数据结构类型,例如:灵活的数组和字典。因其更多的通用数据类型,Python比Awk甚至Per都适用于更多问题领域,至少大多数事情在Python 中与其他语言同样简单。
Python 允许你将程序分割为不同的模块,以便在其他的Python 程序中重用。Python 内置提供了大量的标准模块,你可以将其用作程序的基础,或者作为学习Python 编程的示例。这些模块提供了诸如文件I/0、系统调用、Socket 支持,甚至类似Tk的用户图形界面(GUI)工具包接口。
Python 是一门解释型语言,因为无需编译和链接,你可以在程序开发中节省宝贵的时间。Python 解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。你甚至还可以把它当做一个桌面计算器。
备注:
Tkinter(也叫 Tk接口)是Tk图形用户界面工具包标准的 Python 接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。

2:Python的特性

Python 让程序编写的紧凑和可读。用 Python 编写的程序通常比同样的C、C++或 Java 程序更短小,这是因为以下几个原因:
a.高级数据结构使你可以在一条语句中表达复杂的操作;
b.语句组使用缩进代替开始和结束大括号来组织;
c.变量或参数无需声明。

3: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)安装依赖包

 yum -y install gcc zlib zlib-devel libffi libffi-devel          (安装源码编译需要的编译环境)

yum -y install readline-devel                              (可以解决后期出现的方向键、删除键乱码问题)

 yum -y install openssl-devel openssl11 openssl11-devel

 export CFLAGS=$(pkg-config --cflags openssl11)

export LDFLAGS=$(pkg-config --libs openssl11)      (设置编译FLAG,以便使用最新的openssl库)

3:解压python压缩包

 tar xvf python-3.11.6.tar,xz

4:安装Python

cd Python-3.11.6/

 ./configure --prefix=/usr/local/python3

此处有可选配置项,含义如下:
-enable-optimizations:用PROFILE TASK 启用以配置文件主导的优化(PGO)
-with-lto:在编译过程中启用链接时间优化(LTO)
--enable-shared:启用共享Python库ibpython编译
--with-ssl:编译安装ssl模块到Python3中(默认)

5:编译及安装

编译安装 Python-3.11.6,命令如下:

make

make install

如果主机上已经安装有其他版本的python3,注意是3的版本,要使用altinstall而不是insta11。二者的一个重要区别在于,后者会创建符号链接,将python3等命令链接到正在安装的新版本Python3上,这可能会破坏系统。如果是python2的版本,不会有此影响。

6:建立软连接

ln -s  /usr/local/python3/bin/python3 /usr/bin/python3

ln -s  /usr/local/python3/bin/pip3 /usr/bin/pip3

7:测试python3运行

 python3

退出:Ctrl+D或exit()

8:设置国内pip更新源

cat  <<E0F>  /root/.config/pip/pip.conf

[global]
index-url =http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

使用如下命令也可以:

pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple

pip3 config set install.trusted-host mirrors.aliyun.com

9:更新pip版本(必须更新)

命令:pip3 install --upgrade 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)选择开始菜单文件夹

3:安装vscode插件

(1)安装python插件

如图所示点击 Extentions(扩展)按钮,在搜索区域输入“python”,然后选择 Python 插件进行安装,有了这个插件,就可以在vscode中编辑python代码了。

(2)安装black format 插件(选装)

用同样的方法安装一个“blackformat”插件,该插件可以使用“Shift+A1t+F”组合键对Python 代码进行格式化的处理,自动整理代码的书写规范,让代码看上去更美观。

4:设置国内更新源

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set install.trusted-host mirrors,aliyun.com
pip install--upgrade pip

五:Python的语法基础

1:标识符

所谓的标识符就是对变量、常量、函数、类等对象起的名字。
首先必须说明的是,Python语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不同,python 对于表示标识符的命名有如下规定:
a.标识符的长度不受限制,但其中的字符必须是字母、数字、或者下划线(_),而不能使用空格、连字符、标点符号、引号或其他字符。
b.标识符的第一个字符不能是数字,而必须是字母或下划线。
c.Python 区分大小写。
d.不能将 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)多行语句

前面的例子中都是多条语句在同一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠(\)来实现多行语句

执行结果:ni haowo de ming zi jiao zhang san

5:pass语句

pass语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用 pass
语句:
a.当你不知道后面的代码怎么写的时候
b.当你不需要写代码细节的时候
c.当语法必须,又没有实际内容可写的时候
d.其它的一些你觉得需要的场景

六:python常用的数据类型

1:数字

数字类型包括整型、浮点型、布尔型等,声明时由Python内置的基本数据类型管理变量,在程序的后台实现数值与类型的关联,以及转换等操作。根据变量的值自动判断变量的类型,程序员不需要关心变量空间是什么类型,只需知道创建的变量中存放了一个数,通过编码对这个数值进行操作即可。

(1)整型和浮点型

整数使用整型表示,有小数位使用浮点型表示。
示例1:为变量赋予整型和浮点型的数值
示例代码如下:

示例1的代码中,首先定义了变量x=123。此时的x值是整数,x即是整型变量。当执行语句x=1.98时,x又成为了浮点型变量,由此可以看出,变量的类型是能改变的,与ava、C#语言等是有区别的。这是因为当Python给已经存在的变量再次赋值时,实际上是创建了一个新的变量,即使变量名相同,但标识并不相同,变量的标识可以使用id.函数输出。

(2)布尔型

布尔型是用于逻辑运算,有2个值True、False,表示真和假
示例2:为变量赋布尔型数值
示例代码如下:

执行结果:1

代码定义了变量 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:使用引号定义字符串的值

字符串变量tit1e1中出现了单引号,需要使用双引号定义,字符串变量tit1e2中出现了双引号,需要使用单引号定义。当字符串中同时出现单引号和双引号,就需要使用三引号进行定义。

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:使用列表保存元素的数值,并输出示例代码如下:

>>> num = ['001', '002','003']

>>> print(num)

>>> print (num[0])

>>> print (num[1])

>>> print (num[2])

示例9代码中,定义的列表num中,存储有三个字符串,其顺是'001’、'002’、'003’,取值时用列表名num加上中括号,数字表示案引位置。需要注意:列表中元素的是由开始,以1为单位依次递增。

2)可以获取列表指定范围的一组元素,语法如下。
语法:
列表名 [起始位置:终止位置]
可以输出起始位置到终止位置前的元素,不包括终止位置。
示例10:输出列表中指定位置的元素
示例代码如下:

示例10中,num列表后的[0:1]表示获取由索引0开始至索引位置1之前的元素,所以只能取到第1个元素;而[0:2]则可以取到索引2之前的元素,其它的与此相同。

(3)修改列表元素值

可以修改指定位置的列表元素值,语法如下。
语法:
列表名  [索引位置]  =  值

示例 11:修改列表中指定位置的元素值示例代码如下:

定义列表 num时,索引位置的元素是“001”,修改它的值为“004”后,索引位置0元素的值变为“004”。

(4)添加列表元素

可以采用两种方式,添加向列表中添加元素。
1)可以把一个元素添加到列表的最后,语法如下。
列表名.append(元素值)

示例12:将元素添加到列表的最后位置示例代码如下:

示例 12的代码执行语句num.append('804')之后,字符串“804”被添加到列表的末尾
2)在列表指定位置前插入新的元素,语法如下
语法:

列表名.insert(索引位置,元素值)

示例 13:将元素添加到列表中指定的位置示例代码如下:

示例13中,语句num.insert(1,'004')的作用是在列表num的索引位置1之前插入字符串'004’。初始时,num有3个元素,索引位置1的当前元素是’002',执行示例16的代码后,字符串'004’插入到'002’的前面。

(5)删除列表元素

可以删除列表指定索引位置的元素,语法如下。
语法:
del  列表名 [索引位置]

示例14:删除列表中第2个元素示例代码如下:

示例14中,首先,执行语句delnum[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个元素,因为索引位置是从开始计算,所以最大的索引值是2。如果索引值大于2,表示索引是越界的,程序无法执行。
示例17:索引越界
(1)索引越界
示例代码如下:

(2)负值索引

索引值为5时,大于最大的索引值2,程序报索引越界错误。那么,当使用小于。的负数索引时会不会出错呢?答案是不会,因为Python列表的负数索引表示的是由列表的末尾进行反向的取值,也就是最后一个元素的位置也可以使用索引-1取值,倒数第二个索引是-2, 向前依次递减,示例代码如下:

(3)当获取列表指定范围的一组元素时,不存在列表索引越界的问题,示例代码如下:

列表num中有3个元素,获取列表范围时指定了最大位置是5,超出了最大索引值, 程序可以正常执行,并没有报错。

(4)获取列表指定范围时可以同时使用正数和负数索引,示例代码如下:

表示获取由索引位置0元素开始,到-1元素之前的所有元素
(5)列表元素也可以是列表,示例代码如下:

上述案例定义了列表 num,它里面的每一个元素也是一个列表,使用num[8]表示取到的是第一个元素值,对应的是一个列表。使用 num[0][0]表示取到第一个元素列表的第一个值,使用print num[2][1]表示取到第三个列表的第二个元素值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值