
本文框架:

一、为什么要学习Python
不管使用哪种编程语言,使用的目的都是通过编程语言与计算机交流,让计算机干活,以此实现使用者的需求。
由于大数据、人工智能的出现,使得数据分析的需求非常紧俏,这直接导致了Python这种编程语言的流行。
全球流行编程语言排行榜:
HelloGitHub 2020年08月编程语言排行榜hellogithub.com二、快速学习Python的4个关键点
- 数据
- 条件判断
- 循环结构
- 函数
1. 数据
1.1 什么是数据?
数据是一切程序运行的原材料,有的数据来自于程序本身,有的数据来自于用户的输入。可以把数据看作是大型的数据加工厂,当给程序输入数据后,程序会对数据进行处理,之后程序再返回处理结果。
如:微信公众号就是个程序,用户可以对微信公众号发送数据,得到自己想要的结果。

1.2 程序中的数据放在哪里?
在代码里,用变量来存放数据,并用等号为变量赋值,变量的概念和方程变量的概念是一样的,只是在计算机程序中,变量不仅可以是数字,还可以是任意的数据类型。
比如:定义一个叫一个人的姓名为“马云”

等号是赋值命令,等号的左边是变量名称,右边是给变量赋的值,上图的nameStr变量中存放的是姓名叫“马云”的人的数据。
1.3 如何给变量取名?
为了方便使用变量,优秀的编程人员给变量取名时,变量的名称的前半部分(name)要能代表数据的意义,后半部分(Str)要能代表数据的类型,这样当使用变量的时候,可以通过变量名称知道变量里面存放了什么数据,存放的数据是哪种数据类型。
比如上幅图中,变量nameStr
的前半部分name
代表人的姓名,而Str
则代表变量nameStr
的类型是字符串 .
变量的命名规则:
- 由字符,数字和下划线
_
组成 - 不能以数字开头
- 不能是关键字
- 变量名大小写敏感
1.4 如何注释代码?
注释代码,是为了让人更好地理解代码。在Python中注释代码有两种方法,如下图:

1.5 Python中的数据类型
Python中的数据类型根据用途的不同分为:字符串(String)、数值(Number)、容器、布尔、空值(None)五大类型
(1)字符串(String)
【字符串合并】
字符串合并用+
号 ,例如:

【字符串的%s
格式化】
用%s
可将字符串格式化,例如:

(2)数值(Number)
数值类型分为三种:int(整数)、float(浮点数)、complex(复数),它们与数学中的概念相同,如:
1)int(整数)
age = 50
即年龄为50
2)float(浮点数)
money = 3.53
即钱为3.53元
(3)容器
Python中为了存放不同的数据有4种容器,分别是列表(List)、元组(Tuple)、集合(Sets)、字典(Dictionary)
容器的4种操作:
增加、删除、修改、查询

1)列表(List)
列表由一对中括号[]
进行定义,元素与元素直接使用逗号隔开。如:


列表的增删改查:

2)元组(Tuple)
元组通过一对小括号()
进行定义,元组之间使用逗号隔开。


元组的元素不能修改,增加、删除查询与列表的操作一致。
元组利用不可修改的特性,应用在多变量赋值和函数多返回值上。
3)集合(Sets)
python中集合类型与数学中的集合类型一致,用来表示无序、不重复元素的容器。

集合的增删改查:

4)字典(Dictionary)
python中的字典数据类型就是键值对的集合,使用一对大括号{}
进行定义,键值对之间使用逗号,
隔开,键和值使用冒号:
分割。
字典中的键必须是不可变数据类型,且不会重复,值可以使任意数据类型。
键与值是映射关系,好比在医院中的病人编号(键)、病人姓名(值),医生根据病人编号找到对应的病人。


字典的增删改查:

(4)布尔
条件表达式的运算结果返回布尔型,布尔型数据只有两个,非0
和0
、True
和False
表示真
和假
。
运算符:
比较运算符

逻辑运算符

成员运算符

布尔型运算
布尔型数据可以和数值类型数据进行数学计算,这时True
表示整数1
, False
表示整数0

布尔类型转换
任意数据都可以通过函数bool
转换成布尔型。在python中,None, 0(整数),0.0(浮点数),0.0+0.0j(复数),""(空字符串),空列表,空元组,空字典,空集合的布尔值都为False
,其他数值为True
。如:

(5)空值(None)
None
是python中的特殊数据类型,它的值就是它本身None
,表示空,表示不存在。
2. 条件判断
条件判断分为单分支、二分支、多分支条件判断
2.1 单分支条件判断
单分支结构通过if
语句来实现,语法如下:
if <条件>:
语句块
- 注意条件语句结束后要紧跟冒号
- 语句块是
if
条件满足后执行的一条或多条语句序列 - 语句块中语句通过缩进与
if
语句所在行形成包含关系 - 缩进按照规范为4个空格

案例:

2.2 二分支条件判断
二分支结构通过if-else
语句来实现的,语法格式如下:
if <条件>:
<语句块1>
else:
<语句块2>
- <语句块1>是在if条件满足后执行的一个或多个语句序列
- <语句块2>是if条件不满足后执行的语句序列
- 注意缩进,<语句块2>通过缩进与else所在行形成包含关系
二分支语句用于区分<条件>的两种可能True或者False,分别形成执行路径

案例:

2.3 多分支条件判断
python 通过if - elif - else
表示多分支结构,语法如下:
if <条件1>:
<代码块1>
elif <条件2>:
<代码块2>
...
else:
<代码块3>
python依次执行判断条件,寻找第一个结果为True的条件,执行该条件下的代码块,同时结束后跳过整个if-elif-else
结构,执行后面的语句。如果没有任何条件成立,则执行else下的代码块,且else语句是可选的,可以没有else语句。

案例:

3. 循环结构
python中循环结构有两种:
1. 条件循环,也叫while循环
2. 遍历循环,也叫for循环
3.1 条件循环
python中的条件循环通过while
循环语句来实现,所以也叫while
循环,语法格式如下:
while <条件>:
代码块
while
关键字空格后接条件表达式末尾加上冒号组成while
语句- 代码块中的代码通过4个空格的缩进和
while
语句形成包含关系
while
语句首先计算<条件>
表达式,如果结果True
,则执行对应代码块中的语句,执行结束后再次执行<条件>
表达式,再次判断结果,如果为True
则循环执行,直到<条件>
表达式为False
时跳出循环,执行和while
语句相同缩进的下一条语句。
当<条件>
表达式恒为True
时,形成无限循环,也叫死循环,需要小心使用。

案例:

3.2 遍历循环
python中使用关键字for
来实现遍历循环,也叫for
循环,也叫迭代循环,语法格式如下:
for <循环变量> in <容器>:
代码块
- 关键字
for
+空格+<循环变量>
+关键字in
+<容器>+冒号组成for语句 - 代码块通过缩进和for语句形成包含关系
for 循环会依次取出遍历结构中的元素,然后赋值给循环变量,每次遍历都会执行代码块,只到取出遍历结构中的所有元素。
所有可迭代对象都可以作为遍历结构进行for循环。
基本数据类型中序列数据类型,散列数据类型都可以进行迭代。
案例:每天吃饭

案例:清洗GAFATA股票数据

continue用于跳出当前循环

break用于退出整个循环

4. 函数
4.1 函数的定义与使用
函数是实现某个特定功能,可重复使用的代码块

自定义函数示例:

使用自定义函数:


4.2 函数的参数数据类型
(1)不可变数据类型
字符串、数字,元祖这3种是不可变数据类型,其他的都是可变数据类型

(2)可变数据类型
字符串、数字,元祖这3种是不可变数据类型,其他的都是可变数据类型

4.3 变量作用域
python中一个变量能够被访问的范围叫做作用域。根据作用域的大小简单的分为全局变量和局部变量。
(1)全局变量
python是解释型编程语言,解释器在运行一个python程序时会在计算机内存中申请一块内存用来运行这个程序。全局变量在这块内存空间中都可以被访问和修改。
直接定义在函数外的变量就是全局变量,在程序运行的全过程有效。
案例:

在函数内部不能直接修改全局变量,案例:

在函数内部修改全局变量要使用globals
关键字,案例:

(2)局部变量
定义在函数里的变量就是局部变量,它只在它定义的函数里起作用,一旦函数执行完毕它就不存在了。
案例:

三、模块与包

1. 模块
如果从Python解释器退出并再次进入,之前的定义(函数和变量)都会丢失。因此,如果想编写一个稍长些的程序,最好使用文本编辑器为解释器准备输入并将该文件作为输入运行。这被称作编写 脚本 。随着程序变得越来越长,把它拆分成几个文件,方便维护。也可以在不同的程序中使用一个便捷的函数, 而不必把这个函数复制到每一个程序中去。
1.1 概念
模块是一个包含Python定义和语句的文件。文件名就是模块名后跟文件后缀 .py
。
如何使用Python内置模块?
''''
Python内置模块
'''
#第1步:引入模块
import sys
#第2步:使用模块中的函数,属性
pathList=sys.path
print('Python 路径为:n', pathList)
sys.

输入sys.
后按下Tab键

1.2 导入模块
通过关键字import
可以在代码中导入写好的模块,语法如下:
import 模块名
# 模块名为脚本去掉.py时的文件名
使用模块:
import 模块名
模块名.函数名.(...)
import
语句有一个变体,它可以把模块中的名称(函数名,变量,类名)直接导入到当前模块的变量表里,语法如下:
from 模块名 import 名称
# 或
from 模块名 import *
如果模块名称之后带有 as
,则跟在 as
之后的名称将直接绑定到所导入的模块。语法如下:
import 模块名称 as 新名称
from 模块名称 import 名称 as 新名称
1.3 第三方模块的使用

2. 包
模块的问题解决了代码过长不便于维护问题,但是如果不同人编写的模块名相同怎么办?为了避免模块名冲突,python又引入了用目录来组织模块的方法,称为包。只要顶层包名不起冲突,模块就不会起冲突。
使用某个包中的某个模块的某个函数:
方法一:
import 包名.模块名
包名.模块名.函数名
方法二:
也可以通过结合from
引用
from 包名 import 模块名
模块名.函数名
方法三:
from 包名.模块名 import 函数名
函数名
四、数据结构

介绍Python的collections包,了解常用的数据结构,官网使用操作文档:
https://docs.python.org/3.8/tutorial/datastructures.html#more-on-listsdocs.python.org1. 队列(queue)
队列就像你去餐厅外婆家吃饭排队,新来的人在队列尾部加入,叫做入队。取完票的人从队列首部离开队列,叫做出队




2. 栈(stack)
栈这种数据结构有点像像生活中的木桶。你往栈中加入新的元素,就是入栈,新的元素总是放在木桶的最上面。

3. 排序字典(OrderedDict)


4. 计数器(Counter)
计数器可对元素做出现次数做统计


菜鸟网站Python3资料:
Python3 教程 | 菜鸟教程www.runoob.com