C 1 STL初识
STL的基本概念STL的诞生
长久以来,软件界一直希望建立一种可重复利用的东西
C++的面向对象和泛型编程思想,目的就是复用性的提升
大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作
为了建立数据结构和算法的一套标准,诞生了STL
STL基本概念
STL(Standard Template Library,标准模板库)
STL从广义上分为:容器(container)算法(algorithm)迭代器(iterator)
容器和算法之间通过迭代器进行无缝衔接。
STL几乎所有的代码都采用了模板类或者模板函数
STL六大组件STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器
容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据。
算法:各种常用的算法,如sort、find、copy、for_each等。
迭代器:扮演了容器与算法之间的胶合剂。
仿函数:行为类似函数,可作为算法的某种策略。
适配器:一种用来修饰容器或者仿函数或迭代器接口的东西。
空间配置器:负责空间的配置与管理。
STL中容器 ...
Python 12 面向对象
初识对象使用对象组织数据
在程序中是可以做到和生活中那样,设计表格、生产表格、填写表格的组织形式的
在程序中设计表格,我们称之为:设计类(class)
12class Student: name = None # 记录学生姓名
在程序中打印生产表格,我们称之为:创建对象
123# 基于类创建对象stu_1 = Student()stu_2 = Student()
在程序中填写表格,我们称之为:对象属性赋值
12stu_1.name = "周杰轮" # 为学生1对象赋予名称属性值stu_2.name = "林军杰" # 为学生2对象赋予名称属性值
总结
生活中或是程序中,我们都可以使用设计表格、生产表格、填写表格的形式组织数据
进行对比,在程序中:
设计表格,称之为:设计类(class)
打印表格,称之为:创建对象
填写表格,称之为:对象属性赋值
Demo
123456789101112131415161718192021# 1. 设计一个类(类比生活中:设计一张登记表)class Student: name = None ...
Python 11 Python基础综合案例-动态柱状图
基础柱状图构建通过Bar构建基础柱状图
12345678910from pyecharts.charts import Barfrom pyecharts.options import *# 构建柱状图对象bar = Bar()# 添加x轴数据bar.add_xaxis(["中国", "美国", "英国"])# 添加y轴的数据bar.add_yaxis("GDP", [30, 20, 10])# 绘图bar.render("基础柱状图.html")
反转x和y轴
12345678910# 构建柱状图对象bar = Bar()# 添加x轴的数据bar.add_xaxis(["中国", "美国", "英国"])# 添加y轴的数据bar.add_yaxis("GDP", [30, 20, 10])# 反转xy轴bar.reversal_axis()# 绘图bar.render("基础柱状图.html&q ...
Python 10 Python基础综合案例-地图可视化
数据可视化-地图可视化Demo
12345678910111213141516171819202122232425262728293031"""演示地图可视化的基本使用"""from pyecharts.charts import Mapfrom pyecharts.options import VisualMapOpts# 准备地图对象map = Map()# 准备数据data = [ ("北京市", 99), ("上海市", 199), ("湖南省", 299), ("台湾省", 399), ("广东省", 499)]# 添加数据map.add("测试地图", data, "china")# 设置全局选项map.set_global_opts( visualmap_opts=VisualMapOpts( is_show=True, ...
Python 9 Python基础综合案例-折线图可视化
JSON数据格式的转换什么是json
JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据
JSON本质上是一个带有特定格式的字符串
主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。类似于:
国际通用语言-英语
中国56个民族不同地区的通用语言-普通话
json有什么用
各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型,而其它语言可能没有对应的字典
为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式。以Python的C语言互传数据为例:
12Python格式数据->Json格式数据->C语言程序接受Json格式数据并转化为C格式数据继续使用C格式数据->Json格式数据->Python语言程序接受Json格式数据并转化为Python格式数据继续使用
json格式数据转化
json格式的数据要求很严格,下面我们看一下要求
1234# json数据的格式可以是:{"name":" ...
Python 8 Python异常、模块与包
了解异常什么是异常
当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的”异常“,也就是我们常说的BUG
异常演示
例如:以’r’方式打开一个不存在的文件
1f = open('linux.txt','r')
执行结果:FileNotFoundError
总结
什么是异常:异常就是程序运行的过程中出现了错误
bug是什么意思:bug就是指异常的意思,历史上因为小虫子导致计算机失灵的案例,所以延续至今,bug就代表软件出现错误。
Demo
12345"""主动写一段错误代码,演示异常的出现"""# 通过open,读取一个不存在的文件f = open("D:/abc.txt", "r", encoding = "UTF-8")
运行结果
12345Traceback (most recent call last): File "D:\python\pythonProjec ...
Python 7 Python文件操作
文件编码概念文件编码
思考:计算机只能识别:0和1,那么我们丰富的文本文件是如何被计算机识别,并存储在硬盘中呢?
答案:使用编码技术(密码本)将内容翻译成0和1存入
编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译会可识别内容
计算机中有许多可用编码:UTF-8、GBK、Big5等
不同的编码,将内容翻译成二进制也是不同的
查看文件编码
我们可以使用Windows系统自带的记事本,打开文件后,即可看出文件的编码是什么
UTF-8是目前全球通用的编码格式
除非有特殊需求,否则,一律以UTF-8格式进行文件编码即可
总结
编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑
编码中我们最常用的是UTF-8编码
计算机只0和1,所以需要将内容翻译成0和1才能保存在计算机中
同时也需要编码,将计算机保存的0和1,反向翻译回可以识别的内容
文件的读取操作什么是文件
内存中存放的数据在计算机关机后就会消失。要长久保存数据,就要使用硬盘、光盘、U盘等设备。为了便于数据的管理和检索,引入了”文件“的概念
一篇文章、一段视频、一个可执行程序,都可以被保存为一个文件, ...
Python 6 Python函数进阶
函数的多返回值多个返回值
如果一个函数要有多个返回值,该如何书写代码
12345def test_return(): return 1, 2x, y = test_return()print(x) # 结果1print(y) # 结果2
按照返回值的顺序,写对应顺序的多个变量接收即可
变量之间用逗号隔开
支持不同类型的数据return
Demo
12345678910"""演示函数的多返回值示例"""# 演示使用多个变量,接收多个返回值def test_return(): return 1, "hello", Truex, y, z = test_return()print(x)print(y)print(z)
运行结果
1231helloTrue
函数的多种参数使用方式函数参数种类
使用方式上的不同,函数有4种常见参数使用方式:
位置参数
关键字参数
缺省参数
不定长参数
位置参数
位置参数:调用函数时根据函数定义的参数位置来传递参数
123def user_info(name, age, ...
Python 5 数据容器
数据容器入门Python中的数据容器:一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素
每一个元素,可以是任意类型的数据,如字符串、数字、布尔等
数据容器根据特点的不同,如:
是否支持重复元素
是否可以修改
是否有序,等
分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
列表的定义语法列表内的每一个数据,称之为元素
以[]作为标识
列表内每一行之间用,用逗号隔开
列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套
Demo
123456789101112131415"""演示数据容器之:list列表语法:[元素,元素......]"""#定义一个列表listmy_list = ["hello","world","python"]print(my_list)print(type(my_list))mt_list = ["zhangsan",666,True]pr ...
Python 4 函数
函数的初体验函数:是组织好的,可重复使用的,用来实现特定功能的代码段
使用函数的好处是:
将功能封装在函数内,可供随时随地重复利用
提高代码的复用性,减少重复代码,提高开发效率
Demo
1234567891011121314151617181920212223242526272829"""演示:快速体验函数的开发及应用"""# 需求:统计字符串的长度,不使用内置函数len()str1 = "zhangsan"str2 = "helloworld"str3 = "python"# 定义一个计数的变量count = 0for i in str1: count += 1print(f"字符串{str1}的长度是:{count}")count = 0for i in str2: count += 1print(f"字符串{str2}的长度是:{count ...