一、Python的概述
1、Python的特点
(1)简单易学
(2)程序可读性好
(3)丰富的数据类型
(4)开源
(5)解释型语言
(6)面向对象
2、编译执行和解释执行
编译执行:通过编译程序(也称为编译器)将源代码一次性编译成目标程序,再由计算机运行目标程序的过程,其中源代码指由高级语言编写的代码。(C语言)

解释执行:解释执行与编译执行主要的区别是翻译时的解释程序不产生目标代码,且解释器在翻译源代码的同时执行中间代码,边解释边执行。(Python语言)

3、开发效率vs运行效率

4、Python的应用领域
(1)Windows系统编程
(2)科学计算与数据可视化
(3)数据库应用
(4)多媒体应用
(5)网络应用
(6)电子游戏应用
5、开发环境安装
(1)安装Python解释器
①访问Python官网的下载页面:https://www.python.org/downloads/
https://www.python.org/downloads/
②双击安装包。勾选"Add Python 3.7 to PATH",选择"Install Now"开始自动安装Python解释器、配置环境变量。

③在【开始】菜单中搜索"python",打开Python

④用户亦可在控制台中进入Python环境

(2)运行模式
①交互式:输入又一行命令,执行一次

②脚本式:以脚本文件编写代码,执行.py文件

6、Python的使用
(1)命令行界面
win+R键输入命令powershell打开

(2)交互式界面
开始菜单的搜索栏里输入python,按如下图示打开


(3)pycharm软件界面
需要先去官网下载pycharm,可以参考教程:PyCharm 安装 | 菜鸟教程
官网下载:下载 PyCharm:JetBrains 出品的用于数据科学和 Web 开发的 Python IDE

二、Python的语法基础
1、代码风格
(1)缩进
所有代码块语句必须包含相同的缩进空白数量,建议在每个缩进层次使用单个制表符 或两个空格 或四个空格 , 切记不能混用。
(2)注释
单行注释:使用符号井号#。
多行注释:使用符号三个单引号'''或三个双引号"""。
(3)声明
编码声明:为源文件指定字符编码,在文件的首行或第二行,可以是下面的任意一个:
①# -*- coding: UTF-8 --*- ②#coding=utf-8 ③#coding:utf-8

路径声明:告诉OS python解释器的位置,一般在行首。
#!/usr/bin/python3
(4)声明和注释
和单行注释不同,声明是会被执行的。

(5)多行语句
①一条语句占多行
Python语句中一般以新行作为语句的结束符,可以使用斜杠( \)将一行的语句分为多行显示,语句中包含 \[\], {} 或 () 括号就不需要使用多行连接符。


①多条语句占一行
在同一行中使用多条语句,语句之间使用分号(;)分割

2、关键字、标识符、变量
(1)标识符
标识符:一个名字,主要作用就是作为变量、函数、类、模块以及其他对象的名称。
命名规则:
①标示符由字母、下划线和数字组成,且数字不能开头。
②python中的标识符是区分大小写的。
③python中的标识符不能使用关键字(35个)。
Python 语言中,以下划线开头的标识符有特殊含义:
➊以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入。
➋以双下划线开头的标识符(如__add)表示类的私有成员。
➌以双下划线作为开头和结尾的标识符(如 init),是专用标识符。
⚠️注意:因此,除非特定场景需要,应避免使用以下划线开头的标识符。尽量避免使用汉字作为标识符,这会避免遇到很多奇葩的错误。
(2)关键字
关键字:

(3)变量
变量:在Python 中,创建变量不需要类型声明,直接对其赋值即可,python能够自动识别数据类型。

Python中的变量:对一个数据的引用,给变量重新赋值,相当于把标签指向内存中的另外一块区域。
C语言中的变量:改变对应区域的内容。

Python允许同时为多个变量赋值,可以是如下两种的创建方法:


3、基本数据类型
不可变数据类型:创建后,值不能被改变。如果修改,实际上是创建了一个新的对象。
Number(数值)、String(字符串)、Tuple(元组)
可变数据类型:创建后,可以修改内容(增、删、改),内存地址不变。
List(列表)、Dictionary(字典)、Set(集合)

(1)Number数字类型
Number数字类型有:int、float、bool、complex,在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
(2)复数类型

(3)布尔类型
布尔型其实是整型的子类型。布尔型数据只有两个取值:True和False,分别对应整型的1和0。
4、运算符与表达式
(1)赋值运算符
①赋值的操作

②赋值的符号

(2)比较运算符

(3)逻辑运算符

(4)成员运算符

(5)身份运算符

(6)运算符的优先级

5、输入和输出
(1)输入
① input() 函数基本用法
Python 使用 input() 函数从键盘读取用户输入,返回值为字符串类型。

② 输入数字并转换为数值类型
由于 input() 返回的是字符串,如果需要数字,必须用 int() 或 float() 转换:

③ 一行输入多个值(使用 split())

④ 使用 map() 批量转换

⑤ 输入密码(不显示回显)------ 使用 getpass 模块
不显示回显:用户输入的内容在屏幕上不会显示出来。

(2)输出
①旧式字符串格式化:% 操作符

②新式格式化: str.format() 函数

③新式格式化:f-字符串格式化(Python3.6新增)

参考网址:https://www.runoob.com/python3/python3-inputoutput.html
6、函数、模块化编程
(1)程序结构
程序设计的三种结构:顺序结构、分支结构、循环结构。
分支结构:

循环结构:


break:立即结束整个循环,continue:跳过本次循环,进入下一次。
(2)函数
什么是函数?
①函数是Python内建支持的一种封装。
②把大段代码拆成函数,通过一层一层函数调用,可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。
③函数就是面向过程的程序设计的基本单元。
如何定义函数?

(3)模块
什么是模块?
①模块(module)的功能与函数相似,从本质上讲,使用模块和函数都是为了更好地组织代码,减小程序体积,提高代码的利用率。
②在Python程序中,一个.py文件便可构成一个模块,通过在当前.py文件中导入其它.py文件,可以调用被导入文件中定义的内容,例如变量、函数等。
如何导入模块?

模块的分类:内置模块、第三方模块、自定义模块

三、流程控制
1、顺序结构

2、选择结构

(1)单分支

(2)双分支

(3)多分支

(4)Pass语句
空语句,可以用来占位,没有实际意义。
3、循环结构

(1)while循环
求n的阶乘

(2)for循环
遍历字符串

end='':末尾不加任何东西,继续同一行
求0~100的偶数之和

(3)break和continue

(4)循环中的else
使用while-else实现计算n的阶乘

4、流程控制的综合应用
(1)快速判断素数
素数:一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数。

优化版:循环次数少

(2)鸡兔同笼


(3)斐波那契数列
斐波那契数列:从1、1开始,之后每一项都等于前两项之和的数列。

四、字符串与正则表达式
1、字符串
(1)定义方式
字符串: Python中的字符串是最常用的数据类型,可以使用单引号 或双引号 表示单行字符串,也可以使用一对三单引号 或三双引号表示多行字符串。
①单行字符串:单行字符串包含在一对单引号或一对双引号中
②多行字符串:多行字符串以一对三单引号或三双引号作为边界来表示
字符串定界符可以嵌套,如下所示:

⚠️注意:Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
(2)Python的转义字符

(3)字符串操作符

(4)索引
Python为字符串中的元素编号,以实现对字符串中每个字符的获取。按照不同的方向,索引分为正向索引 和**逆向索引,**使用"s索引"这一形式可取出索引对应的字符 。

(5)切片
切片(slice)可以获取字符串中的字符串片段(子字符串)。

(6)字符串处理函数
Python为开发者提供了很多内置函数,使用这些内置函数可以便捷地对字符串执行一些常见的操作。

函数的调用方法:函数名(实参)

(7)字符串处理方法
调用方法:s.方法名(实参)(s为某个字符串或字符串变量)
①大小写转换


②判断字符串中字符的类型


③填充字符串


④检索字符串
-
count():统计字符串中某个子串出现的次数。 -
find():查找子串第一次出现的位置(索引),找不到返回-1。 -
index():与find()类似,但找不到子串时会抛出异常。 -
startswith():判断字符串是否以指定前缀开头,返回True或False。 -
endswith():判断字符串是否以指定后缀结尾,返回True或False。

(8)split方法

-
split():将字符串按照指定的分隔符拆分成一个列表。若不指定分隔符,默认按空白字符(空格、换行、制表符等)拆分。 -
join():将可迭代对象(如列表、元组)中的字符串元素用指定的连接符拼接成一个新的字符串。

(9)格式化字符串输出


2、正则表达式
正则表达式:用来检索、替换符合某个模式(规则)的文本。

正则表达式的语法
(1)边界定位符(锚字符)

(2)元字符

(3)限定符

(4)贪婪和非贪婪
-
贪婪匹配:默认模式下,正则表达式会尽可能多地匹配符合条件的内容,直到无法继续为止。
-
非贪婪匹配 :在量词后加
?,会尽可能少地匹配符合条件的内容,只要满足条件就立即停止。
贪婪匹配 非贪婪匹配(以?结束)


(5)字符类 -
:是字符集合,表示匹配方括号中所包含的任意一个字符

(6)排除字符 - \^
^:是脱字符,表示不匹配集合中的字符,注意^在\[\]中才表示不匹配,在其他位置意义不一样

(7)选择字符(管道字符)- |
|:
(8)转义字符
使用反斜杠 \ 将特殊字符(如 .、*、+、?、^、$、[、]、(、)、{、}、| 等)转换为其字面含义,使其匹配该字符本身而非其特殊功能。
例如:\. 匹配一个点号字符,而不是匹配任意字符。
(9)分组 - ()
():
3、Re模块
(1)re模块的处理方法
re模块:用于字符串匹配


(2)re模块常用方法与详解
compile方法

match方法

search方法

findall方法

sub方法

split方法

4、正则表达式综合应用
(1)导入模块和测试文本

(2)边界定位符的使用

(3)元字符的使用

(4)限定符的使用

(5)字符类和排除字符的使用

(6)分组和选择符的使用

(7)re模块的使用






(8)标志位的使用

(9)转义字符的使用

五、列表与元祖
1、组合数据类型
组合数据类型可以将多个数据组织起来,根据数据组织方式的不同,Python的组合数据类型常见的有三类:序列类型、集合类型 和映射类型。

2、序列
序列:可存储多个元素、元素按顺序排列、可通过索引访问的数据类型(如列表、元组、字符串)。

(1)切片
切片:从序列类型(如字符串、列表、元组)中通过 [start:stop:step] 语法一次性获取子序列的操作。

(2)序列类型分类

(3)可变与不可变数据类型

3、列表
列表:是一个可变的序列,没有长度的限制,可以包含任意个元素。
语法要点:列表中的元素使用\[\]包含,各元素之间使用英文逗号分隔,列表的数据项不需要具有相同的类型。
(1)遍历


(2)索引和切片


(3)使用del语句删除列表元素


(4)+号用于组合列表,*号用于重复列表


(5)嵌套列表


(6)示例
过滤敏感词

列表的常用函数与方法

4、元组
元组:是一个不可变的序列,没有长度的限制,可以包含任意个元素。
语法要点:元组中的元素使用()包含,各元素之间使用英文逗号分隔,元组的数据项不需要具有相同的类型。
⚠️注意:元组被称为只读列表,即数据可以被查询,但不能被修改。
(1)访问元组(下标索引)


(2)删除整个元组(del语句)


(3)元组运算符


元组的应用场景

(4)示例
①输入某年某月某日,判断这一天是这一年的第几天?


②生成验证码

