python的安装

第一个python程序

打开CMD(命令提示符)程序,输入Python并回车

然后,在里面输入代码回车即可立即执行

Python 解释器

我们可以将代码,写入一个以”.py”结尾的文件中,使用python命令去运行它。

Python 开发环境

Python程序一般常见的3种开发环境:

•Python解释器环境内,执行单行代码

•使用Python解释器程序,执行Python代码文件

使用第三方IDE(集成开发工具),如PyCharm软件,开发Python程序

指定工程路径以及选择Python解释器

创建一个Python代码文件 ,名称test.py

常用快捷键

•ctrl + alt + s : 打开软件设置
•ctrl + d :复制当前行代码
•shift + alt + 上\下 : 将当前行代码上移或下移
•crtl + shift + f10 : 运行当前代码文件
•shift + f6 :重命名文件
•ctrl + a : 全选
•ctrl + c\v\x : 复制、粘贴、剪切
•ctrl + f : 搜索
Python基础语法

字面量


常见的字面量类型

3类:整数、浮点数、字符串

基于print语句完成各类字面量的输出

print(字面量),如:

•print(10),输出整数10
•print(13.14),输出浮点数13.14
•Print(“周报”),输出字符串:周报

Python的注释

单行注释的方法

通过 # 号定义,在#号右侧的所有内容均作为注释

建议在#号和注释内容之间,间隔一个空格

单行注释一般用于对一行或一小部分代码进行解释


多行注释的方法

通过一对三个引号来定义("""注释内容"""),引号内部均是注释,可以换行

Python的变量

变量的语法:  变量名称 = 变量的值

变量的目的是存储运行过程的数据

存储的目的是为了:重复使用

变量的特征:   变量的值可以改变

数据类型

string

字符串类型

用引号引起来的数据都是字符串

int

整型(有符号)

数字类型,存放整数 如 -1,10, 0 等

float

浮点型(有符号)

数字类型,存放小数 如 -3.14, 6.66


验证数据的类型的方法:     通过type()语句验证

语法:

type(被查看类型的数据)

1. 在print语句中,直接输出类型信息:

2. 用变量存储type()的结果(返回值)

3.使用type()语句,来查看变量中存储的数据类型信息

数据类型转换

数据类型常见的转换语句

标识符

标识符的定义:

是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名


标识符的命名规则

•内容限定
•(中文、英文、数字、下划线)
•大小写敏感
•不可使用关键

常用关键字


变量的命名规范

•见名知意

•下划线命名法

•英文字母全小写

常用的运算符

算数(数学)运算符

+(加)

-(减)

*(乘)

/(除)

//(取整数)

%(取余)

**(指数)

           


赋值运算符

                         


复合赋值运算符

字符串的扩展

字符串的扩展

字符串在Python中有多种定义形式

1.单引号定义法

2.双引号定义法

3.三引号定义法

                              


字符串的拼接

完成字符串拼接的方法

使用“+”号连接字符串变量或字符串字面量即可

字符串格式化

1.  字符串格式化的语法

"%占位符" % 变量

2. 常用占位符

•字符串:%s
•整数:   %d
•浮点数:   %f

其中的,%s

•%  表示:我要占位
•s   表示:将变量变成字符串放入占位的地方


最长用的3类数据类型占位

%s      把内容转换成字符串,放入占位位置

%d      把内容转换成整数,放入占位位置

%f       把内容转换成浮点型,放入占位位置

 

格式化的精度控制

使用辅助符号"m.n"来控制数据的宽度和精度

•m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效

•.n,控制小数点精度,要求是数字,会进行小数的四舍五入

示例:

•%5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。

•%5.2f:表示将宽度控制为5,将小数点精度设置为2

小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f 后,结果是:[空格][空格]11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为 .35

•%.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35

                            字符串格式化 - 快速写法

快速格式化语法:   f"内容{变量}" 的格式来快速格式化

字符串格式化 - 表达式的格式化


input函数的使用

1. input()语句的功能是,获取键盘输入的数据

2. 可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息。

3. 要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型


Python判断语句


布尔类型和比较运算符

定义变量存储布尔类型数据

变量名称 = 布尔类型字面量

比较运算符的使用


if语句的基本格式

if语句的基本格式

If 要判断的条件:

条件成立时,要做的事情


 

if语句的注意事项:

•判断条件的结果一定要是布尔类型
•不要忘记判断条件后的: 引号
•归属于if语句的代码块,需在前方填充4个空格缩进

if else 语句

1.if else 语句,其中
•if和其代码块,条件满足时执行
•else搭配if的判断条件,当不满足的时候执行

if else语句的注意事项:

•else不需要判断条件,当if的条件不满足时,else执行
•else的代码块,同样要4个空格作为缩进

if elif else语句

if elif else语句的作用

可以完成多个条件的判断


使用if elif else的注意点有:

•elif可以写多个
•判断是互斥且有序的,上一个满足后面的就不会判断了
•可以在条件判断中,直接写input语句,节省代码量
判断语句的嵌套

嵌套语句的语法:


简单嵌套:


应用实例:   公司要发礼物,条件是:

1. 必须是大于等于18岁小于30岁的成年人

2. 同时入职时间需满足大于两年,或者级别大于3才可领取

如图:

if elif else 可以自由组合
满足缩进的要求即可

python循环语句

while循环的语法格式

While 条件:

条件满足时,做的事情1

条件满足时,做的事情2

…….



while循环的基础案例

设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数

1.无限次机会,直到猜中为止

2.每一次猜不中,会提示大了或小了

3.猜完数字后,提示猜了几次


while循环的嵌套应用

循环嵌套的语法:

•同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。

基于空格缩进来决定层次关系

注意条件的设置,避免出现无限循环(除非真的需要无限循环 )

for循环的基础语法

for和while的区别:

除了while循环语句外,Python同样提供了for循环语句。

两者能完成的功能基本差不多,但仍有一些区别:

•while循环的循环条件是自定义的,自行控制循环条件
•for循环是一种”轮询”机制,是对一批内容进行”逐个处理”

for循环的语法:

for 临时变量 in 待处理数据集:

循环满足条件时执行的代码

同while循环不同,for循环是无法定义循环条件的。

只能从被处理的数据集中,依次取出内容进行处理。


  range语句

range语法:

for 临时变量 in 待处理数据集(可迭代对象):

循环满足条件时执行的代码

range语句,获得一个简单的数字序列

获取一个从0开始,到num结束的数字序列(不含num本身)

如range(5)取得的数据是:[0, 1, 2, 3, 4]

 

掌握for循环的嵌套使用

•需要注意缩进,嵌套for循环同样通过缩进确定层次关系
•for循环和while循环可以相互嵌套使用


使用continue和break关键字控制循环

continue关键字用于:中断本次循环,直接进入下一次循环

continue可以用于:    for循环和while循环,效果一致

break关键字用于:直接结束所在循环

break可以用于:    for循环和while循环,效果一致


函数的基础定义语法

函数的基础定义语法

def  函数名(传入参数):

函数体

return 返回值


 

函数的参数

作用:  在函数运行的时候,接受外部传入的数据

•函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数
参数之间使用逗号进行分隔
•函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值
传入的时候,按照顺序传入数据,使用逗号分隔

练习案例:升级版自动查核酸

定义一个函数,名称任意,并接受一个参数传入(数字类型,表示体温)

在函数内进行体温判断(正常范围:小于等于37.5度),并输出如下内容


函数返回值

语法:

def 函数(参数…):

函数体

return 返回值

变量=函数(参数)


通过return关键字,就能像调用者返回数据


None

None表示:空的、无实际意义的意思

函数返回的None,就表示,这个函数没有返回什么有意义的内容



      函数的说明文档

函数的嵌套调用

 

函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容

变量的作用域(局部变量,全局变量)

1.局部变量的定义

作用范围在函数内部,在函数外部无法使用

2. 全局变量的定义

在函数外面定义,这样的话在函数内部和外部均可使用


数据容器

目的:  批量存储或批量使用多份数据

类型:  list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)

list(列表)

基本语法

#字面量

[元素1,元素2,元素3,….]

#定义变量

变量名称=[元素1,元素2,元素3]

#定义空列表

变量名称=[]

变量名称=List()

列表内的每一个数据,称之为元素

以 [] 作为标识

列表内每一个元素之间用, 逗号隔开


 

list的下标索引

 

从后向前,下标索引为:-1、-2、-3,依次递减。


 


 

列表的常用操作(方法)

•查找某元素的下标

语法:列表.index(元素)

index就是列表对象(变量)内置的方法(函数)


•修改特定位置(索引)的元素值:

语法:列表[下标] = 值

可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)


•插入元素:

语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素


•追加元素1:

语法:列表.append(元素),将指定元素,追加到列表的尾部

•追加元素方式2:

语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部


•删除元素:

语法1: del 列表[下标]

语法2:列表.pop(下标)


列表的修改功能(方法)


列表的查询功能(方法)

•统计列表内,有多少元素

语法:len(列表)


list(列表)的遍历

遍历

将容器内的元素依次取出,并处理,称之为遍历操作

while循环和for循环,都是循环语句,但细节不同:

•在循环控制上:
while循环可以自定循环条件,并自行控制
for循环不可以自定循环条件,只可以一个个从容器内取出数据
•在无限循环上:
while循环可以通过条件控制做到无限循环
for循环理论上不可以,因为被遍历的容器容量不是无限的
•在使用场景上:
while循环适用于任何想要循环的场景
for循环适用于,遍历数据容器的场景或简单的固定次数循环场景

元组的定义格式

定义格式:

•(元素, 元素, 元素, ......)

列表有如下特点:

•可以容纳多个数据
•可以容纳不同类型的数据(混装)
•数据是有序存储的(下标索引)
•允许重复数据存在
•不可以修改(增加或删除元素等)
•支持for循环
字符串的常见操作

 

同元组一样,字符串是一个:无法修改的数据容器。

所以:

•修改指定下标的字符  (如:字符串[0] = “a”)
•移除特定下标的字符  (如:del 字符串[0]、字符串.remove()、字符串.pop()等)
•追加字符等  (如:字符串.append())

均无法完成。如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改


•查找特定字符串的下标索引值

语法:字符串.index(字符串)


•字符串的替换

语法:字符串.replace(字符串1,字符串2)

功能:将字符串内的全部:字符串1,替换为字符串2

注意:不是修改字符串本身,而是得到了一个新字符串哦


•字符串的分割

语法:字符串.split(分隔符字符串)

功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中


•统计字符串中某字符串的出现次数

语法:字符串.count(字符串)


•字符串的规整操作(去前后空格)

语法:字符串.strip()


•字符串的规整操作(去前后指定字符串)

语法:字符串.strip(字符串)


操作                                                                                   说明

字符串[下标]                                                      根据下标索引取出特点位置字符

字符串.index(字符串)                                       查找给定自动的第一个匹配项的下标

字符串.replace(字符串1,字符串2)          字符串内的全部字符串1,替换为字符串2.不会修改原字符串

字符串.split(字符串)                                          对字符串进行分割

字符串.strip()                                             移除首位的空格和换行符或指定字符串

字符串.count(字符串)                                  统计字符串内字符串的出现次数

len(字符串)                                                    统计字符串的字符个数


字符串有如下特点:

•只可以存储字符串
•长度任意(取决于内存大小)
•支持下标索引
•允许重复字符串存在
•不可以修改(增加或删除元素等)
•支持for循环

基本和列表、元组相同

不同与列表和元组的在于:字符串容器可以容纳的类型是单一的,只能是字符串类型。

不同于列表,相同于元组的在于:字符串不可修改


数据容器的切片

语法:序列[起始下标:结束下标:步长]

表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:

•起始下标表示从何处开始,可以留空,留空视作从头开始
•结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
•步长表示,依次取元素的间隔
步长1表示,一个个取元素
步长2表示,每次跳过1个元素取
步长N表示,每次跳过N-1个元素取
步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)

集合

操作                                                                                说明

集合.add(元素)                                                      集合内添加一个元素

集合.remove(元素)                                                   移除集合内指定的元素

集合.pop()                                                              从集合中随机取出一个元素

集合.clear()                                                              将集合清空

集合1.different(集合2)                      得到一个新集合,内含2个集合的差集  原有的2个集合内容不变

集合1.different_update(集合2)            在集合1中,删除集合2中存在的元素. 集合1被修改,集合2不变

集合1.union(集合2)                   得到1个新集合,内含2个集合的全部元素,原有的2个集合的内容不变

len(集合2)                                       得到一个整数,记录了集合的元素数量


语法:集合.add(元素)。将指定元素,添加到集合内

结果:集合本身被修改,添加了新元素


•移除元素

语法:集合.remove(元素),将指定元素,从集合内移除

结果:集合本身被修改,移除了元素


•从集合中随机取出元素

语法:集合.pop(),功能,从集合中随机取出一个元素

结果:会得到一个元素的结果。同时集合本身被修改,元素被移除

 


•清空集合

语法:集合.clear(),功能,清空集合

结果:集合本身被清空


•消除2个集合的差集

语法:集合1.difference_update(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。

结果:集合1被修改,集合2不变


•取出2个集合的差集

语法:集合1.difference(集合2),功能:取出集合1和集合2的差集(集合1有而集合2没有的)

结果:得到一个新集合,集合1和集合2不变


•2个集合合并

语法:集合1.union(集合2)

功能:将集合1和集合2组合成新集合

结果:得到新集合,集合1和集合2不变


•查看集合的元素数量

语法:len(集合)

功能:统计集合内有多少元素

结果:得到一个整数结果

掌握字典的定义格式

字典同集合一样,不可以使用下标索引

但是字典可以通过Key值来取得对应的Value


从字典中基于key获取value


字典的嵌套


嵌套字典中获取数据


字典的常用操作说明

操作                                                                                            说明

字典[key]                                                                     获取指定key对应的value值

字典[key]=value                                                           添加或者更新新的键值对

字典.pop(key)                                                取出key对应的value并在字典内删除此key的键值对

字典.clear()                                                                   清空字典

字典.keys()                                                 获取字典的全部key, 可用于for循环遍历字典

len(字典)                                                                    计算字典内的元素数量


字典的增加


字典的更新


字典的删除


•清空字典

语法:字典.clear(),结果:字典被修改,元素被清空


•获取全部的key

语法:字典.keys(),结果:得到字典中的全部Key


•遍历字典

语法:for key in 字典.keys()


•计算字典内的全部元素(键值对)数量

语法:len(字典)

结果:得到一个整数,表示字典内元素(键值对)的数量

 


经过上述对字典的学习,可以总结出字典有如下特点:

•可以容纳多个数据
•可以容纳不同类型的数据
•每一份数据是KeyValue键值对
•可以通过Key获取到Value,Key不可重复(重复会覆盖)
•不支持下标索引
•可以修改(增加或删除更新元素等)
•支持for循环,不支持while循环


数据容器对比总结

数据容器可以从以下视角进行简单的分类:

•是否支持下标索引
支持:列表、元组、字符串 - 序列类型
不支持:集合、字典 - 非序列类型
•是否支持重复元素:
支持:列表、元组、字符串 - 序列类型
不支持:集合、字典 - 非序列类型
•是否可以修改
支持:列表、集合、字典
不支持:元组、字符串

容器特点对比


1.基于各类数据容器的特点,它们的应用场景如下:
•列表:一批数据,可修改、可重复的存储场景
•元组:一批数据,不可修改、可重复的存储场景
•字符串:一串字符串的存储场景
•集合:一批数据,去重存储场景
•字典:一批数据,可用Key检索Value的存储场景
数据容器的通用操作

Len(容器)   统计容器的元素个数


max(容器)

统计容器的最大元素


min(容器)

统计容器的最小元素


list(容器)

将给定容器转换为列表

tuple(容器)

将给定容器转换为元组

str(容器)

将给定容器转换为字符串

set(容器)

将给定容器转换为集合


通用排序功能

sorted(容器, [reverse=True])

将给定容器进行排序

注意,排序后都会得到列表(list)对象


函数的进阶

函数的多个返回值

按照返回值的顺序,写对应顺序的多个变量接收即可

变量之间用逗号隔开

支持不同类型的数据return


函数的多种参数适用形式

位置参数:调用函数时根据函数定义的参数位置来传递参数

关键字参数:函数调用时通过“键=值”形式传递参数.

作用: 可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求.


缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).

作用: 当调用函数时没有传递参数, 就会使用默认是用缺省参数对应的值.


不定长参数:不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景.

作用: 当调用函数时不确定参数个数时, 可以使用不定长参数

 

位置不定长传递以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args

· 关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs


函数作为参数传递

函数compute,作为参数,传入了test_func函数中使用。

•test_func需要一个函数作为参数传入,这个函数需要接收2个数字进行计算,计算逻辑由这个被传入函数决定
•compute函数接收2个数字对其进行计算,compute函数作为参数,传递给了test_func函数使用
•最终,在test_func函数内部,由传入的compute函数,完成了对数字的计算操作

所以,这是一种,计算逻辑的传递,而非数据的传递。

就像上述代码那样,不仅仅是相加,相见、相除、等任何逻辑都可以自行定义并作为函数传入。


lambda匿名函数的语法

函数的定义中

•def关键字,可以定义带有名称的函数
•lambda关键字,可以定义匿名函数(无名称)

有名称的函数,可以基于名称重复使用。

无名称的匿名函数,只可临时使用一次。

匿名函数定义语法: lambda 传入参数: 函数体(一行代码)


•lambda 是关键字,表示定义匿名函数
•传入参数表示匿名函数的形式参数,如:x, y 表示接收2个形式参数
•函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码


Python文件操作

编码的概念:

什么是编码?

编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。

编码有许多中,我们最常用的是UTF-8编码


为什么需要使用编码?

计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。

同时也需要编码, 将计算机保存的0和1,反向翻译回可以识别的内容


open()打开函数

在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下

open(name,mode,encoding)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。

mode:设置打开文件的模式(访问模式):只读、写入、追加等。

encoding:编码格式(推荐使用UTF-8)

read()方法:


readlines()方法:

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。


readline()方法:一次读取一行内容


close() 关闭文件对象


with open 语法

写操作快速入门

写操作快速入门

# 1. 打开文件

f = open('python.txt', 'w')

# 2.文件写入

f.write('hello world')

# 3. 内容刷新

f.flush()

注意:

p直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
p当调用flush的时候,内容会真正写入文件


•w模式,文件不存在,会创建新文件
•w模式,文件存在,会清空原有内容
•close()方法,带有flush()方法的功能

文件的追加

•a模式,文件不存在,会创建新文件
•a模式,文件存在,会在原有内容后面继续写入
•可以使用”\n”来写出换行符

异常

当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”, 也就是我们常说的BUG

异常的捕获方法

基本语法:

try:

可能发生错误的代码

except:

如果出现异常执行的代码


捕获多个异常

try:

print(1/0)

except (NameError, ZeroDivisionError):

print('ZeroDivision错误...')


捕获异常并输出描述信息

try:

print(num)

except (NameError, ZeroDivisionError) as e:

print(e)


捕获所有异常

try:

print(name)

except Exception as e:

print(e)


异常else

else表示的是如果没有异常要执行的代码

try:

print(1)

except Exception as e:

print(e)

else:

print('我是else,是没有异常的时候执行的代码')


异常的finally

finally表示的是无论是否异常都要执行的代码,例如关闭文件。

try:

f = open('test.txt', 'r')

except Exception as e:

f = open('test.txt', 'w')

else:

print('没有异常,真开心')

finally:

f.close()

异常的传递

利用异常具有传递性的特点, 当我们想要保证程序不会因为异常崩溃的时候,

就可以在main函数中设置异常捕获, 由于无论在整个程序哪里发生异常, 最终都

会传递到main函数中, 这样就可以确保所有的异常都会被捕获

Python模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾.  模块能定义函数,类和变量,模块里也能包含可执行的代码.


模块的作用:  python中有很多各种不同的模块, 每一个模块都可以帮助我

们快速的实现一些功能, 比如实现和时间相关的功能就可以使用time模块

我们可以认为一个模块就是一个工具包, 每一个工具包中都有各种不同的

工具供我们使用进而实现各种不同的功能.

模块就是一个Python文件,里面有类、函数、变量等,我们可以

拿过来用


模块在使用前需要先导入 导入的语法如下:

[from 模块名] import [模块 | 类 | 变量 | 函数 | *]  [as 别名]

import 模块名
from 模块名 import 类、变量、方法等
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名

案例:导入time模块

让程序睡眠了5秒钟


from 模块名 import 功能名

from 模块名 import 功能名

功能名()


案例:导入time模块中所有的方法

自定义模块并使用

自定义一个test函数,在另外一个直接调用


当导入多个模块的时候,且模块内有同名功能. 当调用这个同名功能的时候,调用到的是后面导入的模块的功能


if __main__ == “__main__”表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法进入


•__all__变量可以控制import *的时候哪些功能可以被导入

Python包

Python的包定义:包就是一个文件夹,里面可以存放许多Python的模块(代码文件),通过包,在逻辑上将一批模块归为一类,方便使用。


__init__.py文件的作用?

创建包会默认自动创建的文件,通过这个文件来表示一个文件夹是Python的包,而非普通的文件夹

步骤如下:

① 新建包`my_package`

② 新建包内模块:`my_module1` 和 `my_module2`

③ 模块内代码如下


导入包

import 包名.模块名

包名.模块名.目标


导入包方式二:

注意:必须在`__init__.py`文件中添加`__all__ = []`,控制允许导入的模块列表

第三方包

第三方包的安装非常简单,我们只需要使用Python内置的pip程序即可。

打开:命令提示符程序,在里面输入:

pip install 包名称

即可通过网络快速安装第三方包


Python基础综合案例
数据可视化 - 折线图可视化

json数据格式

JSON的定义:是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据
JSON本质上是一个带有特定格式的字符串

主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互. 类似于:

l国际通用语言-英语
l中国56个民族不同地区的通用语言-普通话

各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型, 而其它语言可能没有对应的字典。

为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式


json格式的数据要求很严格, 下面我们看一下他的要求

# json数据的格式可以是:字典

{"name":"admin","age":18}

# 也可以是: 列表

[{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":20}]


准备列表,列表内每一个元素都是字典,将其转换为JSON


准备字典,将字典转换为JSON


将JSON字符串转换为Python数据类型[{k: v, k: v}, {k: v, k: v}]


通过 json.dumps(data) 方法把python数据转化为了 json数据

data = json.dumps(data)

如果有中文可以带上:ensure_ascii=False参数来确保中文正常转换

通过 json.loads(data) 方法把josn数据转化为了 python列表或字典

data = json.loads(data)

pyecharts模块介绍

Echarts 是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可. 而 Python 是门富有表达力的语言,很适合用于数据处理. 当数据分析遇上数据可视化时pyecharts 诞生了.

pyechart网站:   pyecharts - A Python Echarts Plotting Library built with love.

pyecharts-画廊:Document

pyecharts入门

l基础折线图


全局配置选项

set_global_opts方法


全局配置选项的功能

•配置图表的标题
•配置图例
•配置鼠标移动效果
•配置工具栏
•等整体配置项

通过json模块对数据进行处理数据处理

原始数据格式

导入模块:

对数据进行整理, 让数据符合json格式:


 


l导入模块:

折线图相关配置项 置项配置项

配置项            作用                           代码实例
init opts    对折线图初始化设置宽 init_opts=opts.InitOpts(width="1600px",height="800px")
.add_xaxis 添加x轴数据 .add_xaxis(列表)
.add_yaxis    添加y轴数据

创建折线图

L = line(init_opts=opts.Initopts(width="1600px", height="800px"))

这里的Line()是构建类对象


添加数据


.add_yaxis相关配置选项:

配置项 作用 代码实例
series_name 设置图例名称 series_name="美国确诊人数"
y_axis 设置y轴数据 y_axis=["列表]
label_opts 标签点的大小 symbol_size=10
label_opts 标签设置项:不显示标签 label_opts=opts.LabelOpts(is_show=False)
linestyle_opts 线条宽度和样式 linestyle_opts=opts.LineStyleOpts(width=2)

.add_yaxis相关配置选项:


.set_global_opts全局配置选项:

配置项 作用 代码实例
title_opts 设置图表题和位置 title_opts=opts.TitleOpts(title="标题",pos_left="center")
yaxis_opts y轴配置项 yaxis_opts=opts.AxisOpts(name="累计确诊人数")
xaxis_opts x轴配置项 xaxis_opts=opts.AxusOpts(name="时间")
legend_opts 图例配置项 legend.opts=opts.LgendOpts(pos_left=70%")

.set_global_opts(

# 设置图标题和位置

title_opts=opts.TitleOpts(title="2020年 印

b站黑马程序员python基础学习相关推荐

  1. 黑马程序员 python 基础版 哪个老师_(看黑马程序员Python基础班视频挺好,犹豫该不该报班?)...

    看黑马程序员Python基础班视频挺好,犹豫该不该报班? 如果看视频比较好的话,还是建议自学吧,毕竟录制视频的老师不一定参与实质的讲课,且能自学也省一笔培训费用了.我是看的bilibili上黑马程序员 ...

  2. 黑马程序员——零基础学习iOS开发——13 Foundation框架

    ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...

  3. 黑马程序员-JAVA基础学习日志——通篇大总结及学习方法思想

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Java基础知识总结 回首是为了更好向前,天空没有翅膀的痕迹,而我已飞过,人总是这样,害怕回首, ...

  4. b站黑马程序员python教程飞机大战源码

    plane_main.py import pygame.timefrom plane_sprites import * pygame.init()class PlaneGame:"" ...

  5. 黑马程序员 JAVA基础学习笔记

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- ------小弟在因特网的小窝,祝愿所有的朋友身体健康------- 面向对象: 就是更加透明, ...

  6. 【b站黑马程序员C++视频学习笔记-继承方式】

    继承方式 有以下三种继承方式: 公共继承public 保护继承protected 私有继承private 继承之后访问权限如下: 类名/属性 int a int b int c 父类A public ...

  7. 【b站黑马程序员C++视频学习笔记-多态案例三-电脑组装】

    多态案例三-电脑组装 电脑主要组成部件为CPU(用于计算),显卡(用于显示),内存条(用于存储).把每个零件封装出抽象父类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商.创建 ...

  8. 【b站黑马程序员C++视频学习笔记-多态案例二-制作饮品】

    多态案例二-制作饮品 利用多态实现制作咖啡和茶水 Coffee和Tea继承了抽象类AbstractDrinking,并重写了AbstractDrinking的抽象函数 #include<iost ...

  9. Python学习笔记(1)---B站黑马程序员

    Python学习笔记(1)-B站黑马程序员 Python学习笔记(2)-B站黑马程序员 Python学习笔记(3)-B站黑马程序员 文章目录 Linux基础 Python基础 一.Python介绍 0 ...

最新文章

  1. 【c语言】求n个整数的和
  2. 将iPad, iPhone直投屏幕用于TEASOFT课程录制
  3. 搭建android开发环境注意事项1
  4. python中单个和批量增加更新的mysql(没有则插入,有则更新)
  5. matlab将二值图像与原图重叠_图像处理matlab及图像融合图像镶嵌图像拼接
  6. 计算机考研英语有听力吗,考研英语有听力吗
  7. Apache Tomcat 信息泄露漏洞(CVE-2016-8747)
  8. python的书写格式_python 快速写作技巧,格式
  9. Xcode9.x变很卡
  10. delphi连接mysql不用添加dsn_Delphi]delphi中动态创建MySQL的ODBC连接 .
  11. 计算机类科技论文发表,计算机类科技论文
  12. mysql 字段去除空格
  13. import time python_Python——入门级(import 模块)
  14. 手机如何将PDF文件拆分?分享两种手机拆分文件方法
  15. 【springcloud问题】Could not locate PropertySource and the fail fast property is set, failing
  16. access偏移注入
  17. 网络安全小白成长日记
  18. 大数据开发和java的前景_大数据开发和javaEE后端开发哪个就业前景好?
  19. 【专业数据】二.2020~2022年北京交通大学【信息与通信工程】专业复试线/分数线差/计划招生数/复试数/录取数/复试比例/录取率
  20. 纯前端实现—满天星效果

热门文章

  1. OpenAI Gym--Classical Control 环境详解
  2. 奥巴马:我们为什么要上学
  3. 收音机磁棒天线4根接法_收音机磁性天线的使用和绕制方法
  4. 有关计算机的课外阅读书籍,关于2020级本科生《认识实习》课外阅读书目的通知...
  5. RTL是什么,Verilog的语法能不能看我的这一篇大致知道。
  6. 十年时光 离开的谷歌给中国互联网界留下了这些人
  7. SolidWorks添加焊件库的方法
  8. [小笑话]林蛋大与楚中天
  9. 百度SEO站群彩虹网盘外链程序源码V5.1|网盘外链源码
  10. display:block含义