本文框架:
一、为什么要学习Python
不管使用哪种编程语言,使用的目的都是通过编程语言与计算机交流,让计算机干活,以此实现使用者的需求。
由于大数据、人工智能的出现,使得数据分析的需求非常紧俏,这直接导致了Python这种编程语言的流行。
全球流行编程语言排行榜:HelloGitHub 08月编程语言排行榜
二、快速学习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 :
else:
是在if条件满足后执行的一个或多个语句序列
是if条件不满足后执行的语句序列
注意缩进,通过缩进与else所在行形成包含关系
二分支语句用于区分的两种可能True或者False,分别形成执行路径
案例:
2.3 多分支条件判断
python 通过if - elif - else表示多分支结构,语法如下:
if :
elif :
...
else:
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包,了解常用的数据结构,官网使用操作文档:/3.8/tutorial/datastructures.html#more-on-lists
1. 队列(queue)
队列就像你去餐厅外婆家吃饭排队,新来的人在队列尾部加入,叫做入队。取完票的人从队列首部离开队列,叫做出队
2. 栈(stack)
栈这种数据结构有点像像生活中的木桶。你往栈中加入新的元素,就是入栈,新的元素总是放在木桶的最上面。
3. 排序字典(OrderedDict)
4. 计数器(Counter)
计数器可对元素做出现次数做统计
菜鸟网站Python3资料:Python3 教程 | 菜鸟教程