字面量:1、代码中,被写在代码中固定的值,称之为字面量
2、常见的字面量类型:整数(int)、浮点数(float)、字符串(string)
3、基于print输出字面量
print(615) print("大数据实验室") print(615.1)
注释
注释是代码的解释语句,方便与作者与读者理解代码意思,注释不会被程序执行
单行注释:通过#号定义
#大数据实验室
多行注释:通过一对三个单引号来定义注释内容
'''大 数据 实验室'''
数据类型
类型 | 定义 | 例子 |
string | 字符串类型 | abcd |
int | 整形 | 615 |
float | 字符型 | 615.615 |
可以通过type()语句查看数据类型
type(615) type(615.615) type("大数据实验室")
数据类型的转换
语句 | 作用 |
int() | 转化为整形 |
float() | 转化为浮点型 |
str() | 转化为字符串 |
注意:字符串转为int型只会将数字部分可以转化为int型
任何类型都可以转化为字符串
float转为为int会丢失小数部分
运算符
常见的算数运算符:
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
// | 整除 |
% | 取余 |
** | 平方 |
赋值运算符:
= | += | -= | *= | /= | //= | %= | **= |
标准赋值 | 复合赋值 | 复合赋值 | 复合赋值 | 复合赋值 | 复合赋值 | 复合赋值 | 复合赋值 |
字符串
字符串的定义方式:单引号,双引号,三引号;
字符串的拼接:+
字符串格式化:
m=666 print("机械学习:%d"%m)m=666 print(f"机械学习:{m}")
其中第二种方式不理会类型,不能做精度控制,适合对精度无要求是快速使用
精度控制:%m.nd,%m,.nf,其中m表示所占的列数,n表示小数点后几位
注意:如果m比数字还小,m不会生效
n会对小数部分做精度控制,同时对小数部分进行四舍五入
数据的输入:input()函数的使用
input()的功能是从键盘获得数据,它传入的数据类型为字符串类型
a=input("请输入一个数:")
布尔类型数据:
布尔类型是表示真假的数据类型:True表示真,False表示假
布尔类型数据不仅可以通过定义,也可以由比较运算得到
布尔类型可以用作判断与循环的条件
if,if else,if elif else判断语句
if (判断条件1):
条件1成立执行的语句
elif (判断条件2):
条件1不成立,2成立时执行语句
else:
前面条件都不成立所执行的语句
注意:1、判断条件的结构为布尔类型数据
2、条件后加:
3、通过4个空格,来控制之间的归属关系
判断语句的嵌套:通过缩进来控制之间的层次关系
while循环语句
while循环格式:
while 条件:
执行语句
while循环注意:条件返回为布尔类型:True表示继续,False表示停止
通过缩进来控制层次关系
要控制好条件与语句,防止造成死循环
while循环的嵌套:通过缩进来控制层次关系
for 循环:对一个序列中的元素一个一个访问,实现对序列的遍历
range(n,m,q)函数:生成一个从n开始,以q为步长,生成一个序列,无q时步长默认为1
for循环与while循环相同,通过缩进来控制层次关系,同时for循环可以与while循环嵌套使用
continue和break关键字:
continue(临时终端)的作用:中断所在循环的执行,直接进入下一次循环,不进行之后的语句
break(永久中断)的作用:直接结束循环,跳出循环
注意:在嵌套循环中,continue与break只能作用于所在层次的循环,对上层的循环无法发挥作用
数据容器:
常见的数据容器:序列:(列表(list)、元组(tuple)、字符串(str),字典(dict)、集合(set)
列表:
列表的定义:
a=[]
列表的下表索引:可以取到对应位置的元素
a=[1,2,3,4] print(a[0])
列表的常用方法:
a.append(元素) | 向列表中追加一个元素 |
a.extend(数据容器) | 将数据容器中的内容依次取出追加到列表尾部 |
a.insert(下标,元素) | 在指定下标处,插入指定的元素 |
del.a[下标] | 删除指定下标的元素 |
a.pop(下标) | 删除指定下标的元素 |
a.remove(元素) | 从前向后,删除第一个元素匹配项 |
a.clear() | 清空列表 |
a.count(元素) | 统计该元素在列表中出现的次数 |
a.index | 查找指定元素的下标,找不到报错ValueError |
len(列表) | 统计列表长度 |
列表的特点:
1、可以容纳多个数据(上限为2**63-1)
2、可以容纳不同数据类型的数据
3、数据是有序存储,可以通过下标索引取出指定位置的元素
4、允许重复元素的存在,此点与集合相反
5、可以修改(增加,修改,删除元素),此点与元组相反
6、可以通过while,for循环遍历列表的元素
元组的定义:
a=()
元组的操作方法:
index | 查找元素,返回对应下标 |
count | 统计元素出现个数 |
len(元组) | 统计元组长度 |
元组特点:
1、可以容纳不同数据类型的数据
2、数据是有序存储,可以通过下标索引取出指定位置的元素
3、允许重复元素的存在,此点与集合相反
4、不可以修改(增加,修改,删除元素)
5、可以通过while,for循环遍历列表的元素
字符串(str)
字符串定义在之前的数据类型已经介绍,这里不过多说明
操作 | 作用 |
字符串[下标] | 根据指定下标找到指定位置字符 |
字符串.replace(字符串1,字符串2) | 将字符串中的字符串1全部替换为字符串2 |
字符串.index(字符串) | 查找给定字符的第一个匹配项的下标 |
字符串.split(字符串) | 按照给定字符串对原字符串进行分割,最后返回值为一个列表 |
字符串.strip() 字符串.strip(字符串) |
移除首尾的空格和换行符或指定字符串 |
字符串.count(字符串) | 统计字符串内指定字符串出现次数 |
len(字符串) | 统计字符串的长度 |
序列切片格式:序列[起始:结束:步长]
起点可以省略,从开头开始
结束可以省略,到序列末
步长可以省略,默认步长为1,可以为-1,表示倒序进行
a=[1,2,3,4,5,6,7,8,9] b=a[1:8:2] print(b)
1、可以容纳不同类型数据
2、不允许元素重复出现
3、可以修改
4、无序
5、支持for循环,不支持while循环,因为没有下标索引
6、可以通过集合对序列进行去重
字典的定义语法:{key:value,key:value,key:value....}
字典的注意事项:
1、字典内的key不能重复
2、键值对的key和value可以是任意类型
3、字典只能通过key来检索value
字典的常用操作:
方法 | 作用 |
字典[key] | 获取指定key对应的value值 |
字典[key]=value | 添加新的键值对 |
字典.pop(key) | 取出key对应的value并删除此key的值 |
字典.clear() | 清空字典 |
字典.keys() | 获取字典全部key,可通过循环遍历字典 |
len(字典) | 计算字典内元素个数 |
字典的特点:
1、可以容纳多个数据
2、可以容纳不同数据
3、每一份数据都是键值对
4、可以通过key获取value
5、可以修改
定义:在程序中设计表格,我们称之为类(class)
在程序中打印生产表格,我们称之为:创建对象
在程序中填写表格,我们称之为对象属性赋值
类的主要知识点:成员变量,成员方法,封装,构造方法,继承
成员变量,成员方法:
class 类的名称:
类的属性(即定义在类中的成员变量)
类的行为(即定义在类中的成员方法)
创建类对象的语法:
对象=类的名称()
self的作用:只有通过self,成员方法才成访问类的成员变量
self出现在形参列表中,但不占用参数位置,忽略即可
class a: b=1 def c(self,b): b=b+1
定义:继承就是一个类继承另一个类的成员变量和成员方法
语法:
class 子类名称(父类名称)
类内容体
子类构建的类对象可以有自己的成员变量和成员方法,同时可以使用父类的成员变量和成员方法
单继承与多继承:
单继承:一个子类继承一个父类
多继承:一个类继承多个类,优先级按照从左到右,如果父类有同名的成员变量和方法,先继承优先级高的
抽象类(pass)关键字的作用:pass是占位语句,用来保证函数(方法)或类的完整性,表示无内容,空的意思,之后在子类中再定义执行的语句
复写父类成员和调用父类成员:
复写:对父类成员变量与成员方法进行重新定义
复写语法:在子类中重新实现成员方法或成员变量即可
子类中如何调用父类内容:
成员变量:父类名.成员变量
成员方法:父类名.成员方法(self)
私有成员:在类中提供仅供内部使用的属性和方法,不对外开放(类对象无法使用)
如何定义私有成员:成员变量与成员方法均以_做开头即可
私有成员的访问限制:
类对象无法访问私有成员
类中其他成员可以访问私有成员
到此python基础知识大概全部包含,其中有许多细节点还未讲解到,这里我就不为大家详细赘述,大家对于某模块想进行更细致的学习或某些知识点不理解,大家可以在其他知识获取渠道获得更多的细节知识
在这里我们学习使用matplotlib库进行基础的画图,希望对大家有用
import matplotlib . pyplot as pltimport matplotlib as mplfig , ax = plt . subplots () # 创建一个包含一个 axes 的 figureax . plot ([ 1 , 2 , 3 , 4 ], [ 1 , 4 , 2 , 3 ]); # 绘制图像
import matplotlib as mplimport matplotlib . pyplot as plt
fig = plt . figure (( figsize =( 6 , 10 ), facecolor = 'b' , dpi = 500 ) # 定义一张画板命名为 fig#figsize 是调整你的图像的比例大小 , 上面所示就是 : 长 / 宽 =6/10#facecolor 是设置画板的背景颜色 , 一般颜色代码为英文的首字母#dpi 设置图像的分辨率 , 分辨率越图像越清晰 , 尺寸也会按比例变大#edgcolor 是设置边框颜色的参数
import numpy as np# 设置 xy 的值x = np . linspace ( - 5 , 5 , 11 ) # 这里是 ☞ 把 -5 到 5 平均分成十一份 ,(-5,-4,-3,.....),具体的np.linespace讲解请大家自行查找y =[ 1 , 6 , 3 , - 3 , 6 , 8 , 3 , 6 , 9 , 1 , - 5 ]
# 添加 p1 到画板p1 = fig . add_subplot ( 111 ) # 这里的 111 是指把画板分成一行一列 , 把 p1 添加到第一副图# 限制函数坐标轴的长度p1 . axis ([ - 5 , 5 , - 10 , 10 ]) #x 轴长度为 -5 到 5,y 轴长度为 -10 到 10# 设置 x,y 轴的刻度plt . xticks ( x )plt . yticks ( y )# 这里是指 :x,y 轴的刻度为之前定义的 x,y 数据列表# 设置坐标轴的上下限plt . xlim ( - 5 , 5 )plt . ylim ( - 10 , 10 )
# 绘制图像p1 . plot ( x , y , marker = 'o' , ms = 5 , lw = 2 , ls = '--' , label = 'band' )#x,y 就是最开始定义的数据#marker 是设置拐点样式 :o/h/^/./+ 等等#ms 是设置拐点的标记大小#lw 就是设置线条粗细 , 数值越大线条越粗#ls 是设置线条样式 , 这里 '--' 为虚线#label 是设置此线条的名称标题p1 . legend ( loc = 'best' )# 添加图例 , 其中 best 是指将图例的位置添加到最佳位置 , 也可以自己设置位置, 例如 :upper left( 左上角 )# 添加标题plt . title ( 'NUM' , fontsize = 24 ) # 设置图像的标题 ,fontsize 是设置标题文字的大小plt . xlabel ( 'Value' , fontsize = 14 ) # 设置 x 轴的标题plt . ylabel ( 'ARG' , fontsize = 14 ) # 设置 y 轴的标题
plt.show
import matplotlib . pyplot as pltimport numpy as np# 设置 xy 的值x = np . linspace ( - 5 , 5 , 11 )y =[ 1 , 6 , 3 , - 3 , 6 , 8 , 3 , 6 , 9 , 1 , - 5 ]# 创建一张画板huaban = plt . figure ( figsize =( 6 , 10 ))# 添加 p1 到画板p1 = huaban . add_subplot ( 111 )# 限制函数坐标轴的长度p1 . axis ([ - 5 , 5 , - 10 , 10 ])# 设置 x,y 轴的刻度plt . xticks ( x ) plt . yticks ( y )# 去除右边边框p1 . spines [ 'right' ]. set_color ( 'none' )# 去除顶部边框p1 . spines [ 'top' ]. set_color ( 'none' )# 下面两行代码是将 xy 轴的交点改为 (0,0)p1 . spines [ 'bottom' ]. set_position (( 'data' , 0 ))p1 . spines [ 'left' ]. set_position (( 'data' , 0 ))# 绘制图像p1 . plot ( x , y , marker = '^' , ms = 5 , lw = 2 , ls = '--' , label = 'band' )p1 . legend ( loc = 'upper left' )# 添加标题plt . title ( 'NUM' , fontsize = 24 )plt . xlabel ( 'Value' , fontsize = 14 )plt . ylabel ( 'ARG' , fontsize = 14 )# 添加辅助虚线for i in range ( len ( x )):x1 =[ x [ i ], x [ i ]]y1 =[ 0 , y [ i ]]plt . plot ( x1 , y1 , 'r-.' )for i in range ( len ( x )):x2 =[ 0 , x [ i ]]y2 =[ y [ i ], y [ i ]]p1 . plot ( x2 , y2 , 'r-.' )# 添加每个折点的坐标for i in range ( len ( x )):p1 . text ( x [ i ], y [ i ],( x [ i ], y [ i ]), c = 'green' )plt . grid ( c = 'b' , ls = '--' ) # 这个函数是生成网格的函数plt . show ()
import matplotlib . pyplot as pltimport matplotlib as mplfig , ax = plt . subplots ()ax .scatter ([ 1 , 2 , 3 , 4 ], [ 1 , 4 , 2 , 3 ])
import matplotlib . pyplot as pltimport matplotlib as mplfig , ax = plt . subplots ()ax .bar ([ 1 , 2 , 3 , 4 ], [ 1 , 4 , 2 , 3 ])
饼状图的绘制与之前的图大同小异,下面举一个例子
import matplotlib . pyplot as pltx =[ 20 , 40 , 10 , 30 ]name =[ 'A' , 'B' , 'C' , 'D' ]label =[ '20.00%' , '40.00%' , '10.00%' , '30.00%' ]huaban = plt . figure ()p1 = huaban . add_subplot ( 111 )p1 . pie ( x , labels = name , colors = colors , autopct = '%1.2f%%' , explode = ( 0 , 0.2 , 0 , 0 ))plt . show ()
1、首先创建一个三维绘图区域, plt.axes() 函数提供了一个参数
import matplotlib . pyplot as pltax = plt . axes ( projection = '3d' )
2、引入三维数据
import numpy as npz = np . linspace ( 0 , 1 , 100 )x = z * np . sin ( 20 * z )y = z * np . cos ( 20 * z )
3、绘制图像,显示图像
ax . plot3D ( x , y , z)ax . set_title ( '3D line plot' )plt . show ()
三维线图:plt.plot3D
三维散点图:plt.scatter3D
三维等高线图:plt.counter3D
三维线框图:plt.plot_wireframe()
到此为止是本人最近的学习成果,如有错误请指正,希望此简单的总结对大家有用。