b站黑马程序员python基础学习
python的安装
第一个python程序
打开CMD(命令提示符)程序,输入Python并回车
然后,在里面输入代码回车即可立即执行
Python 解释器
我们可以将代码,写入一个以”.py”结尾的文件中,使用python命令去运行它。
Python 开发环境
Python程序一般常见的3种开发环境:
•Python解释器环境内,执行单行代码
•使用Python解释器程序,执行Python代码文件
•使用第三方IDE(集成开发工具),如PyCharm软件,开发Python程序
指定工程路径以及选择Python解释器
创建一个Python代码文件 ,名称test.py
常用快捷键
Python基础语法
字面量
常见的字面量类型
3类:整数、浮点数、字符串
基于print语句完成各类字面量的输出
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.三引号定义法
字符串的拼接
使用“+”号连接字符串变量或字符串字面量即可
字符串格式化
"%占位符" % 变量
2. 常用占位符
其中的,%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 else 语句
if else语句的注意事项:
if elif else语句
if elif else语句的作用
可以完成多个条件的判断
使用if elif else的注意点有:
判断语句的嵌套
嵌套语句的语法:
简单嵌套:
应用实例: 公司要发礼物,条件是:
1. 必须是大于等于18岁小于30岁的成年人
2. 同时入职时间需满足大于两年,或者级别大于3才可领取
如图:
python循环语句
while循环的语法格式
While 条件:
条件满足时,做的事情1
条件满足时,做的事情2
…….
while循环的基础案例
设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
1.无限次机会,直到猜中为止
2.每一次猜不中,会提示大了或小了
3.猜完数字后,提示猜了几次
while循环的嵌套应用
![](/assets/blank.gif)
•同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
•基于空格缩进来决定层次关系
注意条件的设置,避免出现无限循环(除非真的需要无限循环 )
for循环的基础语法
for和while的区别:
除了while循环语句外,Python同样提供了for循环语句。
两者能完成的功能基本差不多,但仍有一些区别:
for循环的语法:
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
同while循环不同,for循环是无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。
range语句
range语法:
for 临时变量 in 待处理数据集(可迭代对象):
循环满足条件时执行的代码
range语句,获得一个简单的数字序列
获取一个从0开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0, 1, 2, 3, 4]
掌握for循环的嵌套使用
使用continue和break关键字控制循环
continue关键字用于:中断本次循环,直接进入下一次循环
continue可以用于: for循环和while循环,效果一致
break关键字用于:直接结束所在循环
break可以用于: for循环和while循环,效果一致
函数的基础定义语法
函数的基础定义语法
def 函数名(传入参数):
函数体
return 返回值
函数的参数
作用: 在函数运行的时候,接受外部传入的数据
练习案例:升级版自动查核酸
定义一个函数,名称任意,并接受一个参数传入(数字类型,表示体温)
在函数内进行体温判断(正常范围:小于等于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(下标, 元素),在指定的下标位置,插入指定的元素
语法:列表.append(元素),将指定元素,追加到列表的尾部
语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部
•删除元素:
语法1: del 列表[下标]
语法2:列表.pop(下标)
列表的修改功能(方法)
列表的查询功能(方法)
语法:len(列表)
list(列表)的遍历
遍历
将容器内的元素依次取出,并处理,称之为遍历操作
while循环和for循环,都是循环语句,但细节不同:
元组的定义格式
定义格式:
•(元素, 元素, 元素, ......)
列表有如下特点:
字符串的常见操作
同元组一样,字符串是一个:无法修改的数据容器。
所以:
均无法完成。如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改
语法:字符串.index(字符串)
•字符串的替换
语法:字符串.replace(字符串1,字符串2)
功能:将字符串内的全部:字符串1,替换为字符串2
注意:不是修改字符串本身,而是得到了一个新字符串哦
语法:字符串.split(分隔符字符串)
功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
•统计字符串中某字符串的出现次数
语法:字符串.count(字符串)
•字符串的规整操作(去前后空格)
语法:字符串.strip()
•字符串的规整操作(去前后指定字符串)
语法:字符串.strip(字符串)
操作 说明
字符串[下标] 根据下标索引取出特点位置字符
字符串.index(字符串) 查找给定自动的第一个匹配项的下标
字符串.replace(字符串1,字符串2) 字符串内的全部字符串1,替换为字符串2.不会修改原字符串
字符串.split(字符串) 对字符串进行分割
字符串.strip() 移除首位的空格和换行符或指定字符串
字符串.count(字符串) 统计字符串内字符串的出现次数
len(字符串) 统计字符串的字符个数
字符串有如下特点:
基本和列表、元组相同
不同与列表和元组的在于:字符串容器可以容纳的类型是单一的,只能是字符串类型。
不同于列表,相同于元组的在于:字符串不可修改
数据容器的切片
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
集合
操作 说明
集合.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(),功能,清空集合
结果:集合本身被清空
语法:集合1.difference_update(集合2)
功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。
结果:集合1被修改,集合2不变
•取出2个集合的差集
语法:集合1.difference(集合2),功能:取出集合1和集合2的差集(集合1有而集合2没有的)
结果:得到一个新集合,集合1和集合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(),结果:字典被修改,元素被清空
语法:字典.keys(),结果:得到字典中的全部Key
语法:for key in 字典.keys()
语法:len(字典)
结果:得到一个整数,表示字典内元素(键值对)的数量
经过上述对字典的学习,可以总结出字典有如下特点:
数据容器对比总结
数据容器可以从以下视角进行简单的分类:
容器特点对比
数据容器的通用操作
Len(容器) 统计容器的元素个数
max(容器)
统计容器的最大元素
min(容器)
统计容器的最小元素
list(容器)
将给定容器转换为列表
tuple(容器)
将给定容器转换为元组
str(容器)
将给定容器转换为字符串
set(容器)
将给定容器转换为集合
通用排序功能
sorted(容器, [reverse=True])
将给定容器进行排序
注意,排序后都会得到列表(list)对象
函数的进阶
函数的多个返回值
按照返回值的顺序,写对应顺序的多个变量接收即可
变量之间用逗号隔开
支持不同类型的数据return
函数的多种参数适用形式
位置参数:调用函数时根据函数定义的参数位置来传递参数
关键字参数:函数调用时通过“键=值”形式传递参数.
作用: 可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求.
缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).
作用: 当调用函数时没有传递参数, 就会使用默认是用缺省参数对应的值.
不定长参数:不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景.
作用: 当调用函数时不确定参数个数时, 可以使用不定长参数
位置不定长传递以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args
· 关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs
函数作为参数传递
函数compute,作为参数,传入了test_func函数中使用。
所以,这是一种,计算逻辑的传递,而非数据的传递。
就像上述代码那样,不仅仅是相加,相见、相除、等任何逻辑都可以自行定义并作为函数传入。
lambda匿名函数的语法
函数的定义中
有名称的函数,可以基于名称重复使用。
无名称的匿名函数,只可临时使用一次。
匿名函数定义语法: lambda 传入参数: 函数体(一行代码)
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()
注意:
![](/assets/blank.gif)
文件的追加
异常
当检测到一个错误时,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 别名]
案例:导入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数据的格式可以是:字典
{"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基础学习相关推荐
- 黑马程序员 python 基础版 哪个老师_(看黑马程序员Python基础班视频挺好,犹豫该不该报班?)...
看黑马程序员Python基础班视频挺好,犹豫该不该报班? 如果看视频比较好的话,还是建议自学吧,毕竟录制视频的老师不一定参与实质的讲课,且能自学也省一笔培训费用了.我是看的bilibili上黑马程序员 ...
- 黑马程序员——零基础学习iOS开发——13 Foundation框架
------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...
- 黑马程序员-JAVA基础学习日志——通篇大总结及学习方法思想
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Java基础知识总结 回首是为了更好向前,天空没有翅膀的痕迹,而我已飞过,人总是这样,害怕回首, ...
- b站黑马程序员python教程飞机大战源码
plane_main.py import pygame.timefrom plane_sprites import * pygame.init()class PlaneGame:"" ...
- 黑马程序员 JAVA基础学习笔记
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- ------小弟在因特网的小窝,祝愿所有的朋友身体健康------- 面向对象: 就是更加透明, ...
- 【b站黑马程序员C++视频学习笔记-继承方式】
继承方式 有以下三种继承方式: 公共继承public 保护继承protected 私有继承private 继承之后访问权限如下: 类名/属性 int a int b int c 父类A public ...
- 【b站黑马程序员C++视频学习笔记-多态案例三-电脑组装】
多态案例三-电脑组装 电脑主要组成部件为CPU(用于计算),显卡(用于显示),内存条(用于存储).把每个零件封装出抽象父类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商.创建 ...
- 【b站黑马程序员C++视频学习笔记-多态案例二-制作饮品】
多态案例二-制作饮品 利用多态实现制作咖啡和茶水 Coffee和Tea继承了抽象类AbstractDrinking,并重写了AbstractDrinking的抽象函数 #include<iost ...
- Python学习笔记(1)---B站黑马程序员
Python学习笔记(1)-B站黑马程序员 Python学习笔记(2)-B站黑马程序员 Python学习笔记(3)-B站黑马程序员 文章目录 Linux基础 Python基础 一.Python介绍 0 ...
最新文章
- 【c语言】求n个整数的和
- 将iPad, iPhone直投屏幕用于TEASOFT课程录制
- 搭建android开发环境注意事项1
- python中单个和批量增加更新的mysql(没有则插入,有则更新)
- matlab将二值图像与原图重叠_图像处理matlab及图像融合图像镶嵌图像拼接
- 计算机考研英语有听力吗,考研英语有听力吗
- Apache Tomcat 信息泄露漏洞(CVE-2016-8747)
- python的书写格式_python 快速写作技巧,格式
- Xcode9.x变很卡
- delphi连接mysql不用添加dsn_Delphi]delphi中动态创建MySQL的ODBC连接 .
- 计算机类科技论文发表,计算机类科技论文
- mysql 字段去除空格
- import time python_Python——入门级(import 模块)
- 手机如何将PDF文件拆分?分享两种手机拆分文件方法
- 【springcloud问题】Could not locate PropertySource and the fail fast property is set, failing
- access偏移注入
- 网络安全小白成长日记
- 大数据开发和java的前景_大数据开发和javaEE后端开发哪个就业前景好?
- 【专业数据】二.2020~2022年北京交通大学【信息与通信工程】专业复试线/分数线差/计划招生数/复试数/录取数/复试比例/录取率
- 纯前端实现—满天星效果
热门文章
- OpenAI Gym--Classical Control 环境详解
- 奥巴马:我们为什么要上学
- 收音机磁棒天线4根接法_收音机磁性天线的使用和绕制方法
- 有关计算机的课外阅读书籍,关于2020级本科生《认识实习》课外阅读书目的通知...
- RTL是什么,Verilog的语法能不能看我的这一篇大致知道。
- 十年时光 离开的谷歌给中国互联网界留下了这些人
- SolidWorks添加焊件库的方法
- [小笑话]林蛋大与楚中天
- 百度SEO站群彩虹网盘外链程序源码V5.1|网盘外链源码
- display:block含义