python 写游戏好简单啊,我用键盘可以随意控制角色了【python 游戏实战 04】

前言

本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。

若有想学习的内容可以在评论区留言,根据大家的要求持续更新。点赞过十万就算化成灰我也更新下一篇。(肯定不到,也会更的。)

有问题也可以在评论区留言,也可以私聊我加我好友共同交流一起进步~

我的其它教程

教程点击进去将会有目录

《看聊天记录都学不会C语言?太菜了吧(1)我在大佬群里问基础问题没人理?——学习建议

《大学生C语言作业、习题100例白话详解》

目录

《看聊天记录都学不会Python到游戏实战?太菜了吧》python 写游戏好简单啊,我用键盘可以随意控制角色了【python 游戏实战 04】—— 键盘控制角色移动

《看聊天记录都学不会Python到游戏实战?太菜了吧》游戏角色开始动起来了,真帅!【python 游戏实战 03】—— 角色移动

《看聊天记录都学不会Python到游戏实战?太菜了吧》这是我第一次使用代码创建出一个窗口【python 游戏实战 02】—— 创建游戏场景

《看聊天记录都学不会Python到游戏实战?太菜了吧》这是我第一次使用代码创建出一个窗口【python 游戏实战 01】—— 创建窗口

《看聊天记录都学不会Python到游戏实战?太菜了吧》(12)python 的列表我从没想过会那么好用—— 列表

《看聊天记录都学不会Python到游戏实战?太菜了吧》(11)python里面while到底有多少知识点—— break continue

《看聊天记录都学不会Python到游戏实战?太菜了吧》(10)无底洞的循环—— 循环初窥

《看聊天记录都学不会Python到游戏实战?太菜了吧》(9)集万家之长不死 python—— 导包

《看聊天记录都学不会Python到游戏实战?太菜了吧》(8)我们开始做一个数字小游戏吧—— 数字游戏开始做 导包

《看聊天记录都学不会Python到游戏实战?太菜了吧》(7)我用函数写了个特洛伊木马—— 自定义函数

《看聊天记录都学不会Python到游戏实战?太菜了吧》(6)不会这个知识点代码越写越难—— and or 逻辑运算

《看聊天记录都学不会Python到游戏实战?太菜了吧》(5)用前朝的剑斩今朝的官——if…else

《看聊天记录都学不会Python到游戏实战?太菜了吧》(4)小白不知道这个知识点将会错漏百出——if 与 层级

《看聊天记录都学不会Python到游戏实战?太菜了吧》(3)都说123是字符不是数字——输入与类型

《看聊天记录都学不会Python到游戏实战?太菜了吧》(2)在python中加号竟然如此善变——变量与运算

《看聊天记录都学不会Python到游戏实战?太菜了吧》(1)装载Python神器!亮剑!——helloworld


作者简介

作者名:1_bit

简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者。15-16年曾在网上直播,带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息,迷茫的你会找到答案。

博客地址:https://i1bit.blog.csdn.net


🐰小C:小媛,上一节我们绘制了一个场景,移动了角色,那么这一节我们就开始控制主角并且让他进行移动吧?

👸小媛:我怎么感觉你突然变得好心了,以前每一节就讲一点内容,然后就开始跟我拌嘴水字数,这一节怎么直奔主题?😂

🐰小C:有嘛?是你跟我拌嘴的好嘛?你不信去看聊天记录。

👸小媛:真的吗?那还不是你在水字数。

🐰小C:哈哈哈,这一节不水了,开始玩真的吧。

👸小媛:赶紧的,你又水了 224 个md字数了。😂

🐰小C:行,我们先看一下我们上一节的代码。

import pygame

pygame.init()
screen=pygame.display.set_mode((600,800))
pygame.display.set_caption("这是一个飞机游戏")
icon=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
bg=pygame.image.load(r'E:\2dsrc\src\img\bg.png')
hero=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
pygame.display.set_icon(icon)
heroX=250 #x坐标
#游戏主循环
while True:
    #事件遍历
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            exit()
    heroX=heroX-3
    screen.blit(bg,(0,0))
    screen.blit(hero,(heroX,680))
    pygame.display.update()

🐰小C:上一节我们只是使用了代码对主角进行移动,那么现在我们改一下,我们按上,主角就往上走、按下主角就往下走,其它按键依次类推如何?

👸小媛:行,你说啥就是啥,终于不废话了。 😰

🐰小C:不不不,还是需要点情节来让整个氛围轻松的。

👸小媛:赶紧吧,别废话,真是禁不起夸。

🐰小C:哈哈哈,其实我们刚刚已经获取到了这个游戏中发生的所有事件 pygame.event.get(),我们只是从获取的事件中判断是否做了退出事件,那么在这里我们只需要再判断是否按下了特定的键,那么就可以对特定的键做出反应了。

👸小媛:然后根据上一节所学,我们只需要根据不同按键控制这个主角下一次绘制所在的位置就可以了吧?

🐰小C:是的,我们首先判断按下什么键吧。

import pygame

pygame.init()
screen=pygame.display.set_mode((600,800))
pygame.display.set_caption("这是一个飞机游戏")
icon=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
hero=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
bg=pygame.image.load(r'E:\2dsrc\src\img\bg.png')
pygame.display.set_icon(icon)
#游戏主循环
while True:
    #事件遍历
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            exit()
        if event.type==pygame.KEYDOWN:
	        if event.key == pygame.K_RIGHT:
	            print('→')
	        elif event.key == pygame.K_LEFT:
	            print('←')
	        elif event.key == pygame.K_UP:
	            print('↑')
	        elif event.key == pygame.K_DOWN:
	            print('↓')
	screen.blit(bg,(0,0))
	screen.blit(hero,(heroX,680))
	pygame.display.update()

👸小媛:if event.key == pygame.K_RIGHT 就是判断是否按下的键吗?

🐰小C:是的,event.key 表示具体按下了什么键,如果 event.key 等于 pygame.K_RIGHT 那么就表示按下了右键头,那么就运行 print('→') 输出打印出 → 箭头。

👸小媛:明白了。然后 pygame.K_LEFT 是按下了左键、pygame.K_UP 表示按下上键、pygame.K_DOWN 表示按下了下键? 😶

🐰小C:是的,但是我们需要注意,必须是按下键后这个时间才会有 event.key 中的 key 这个类型,如果你没按下是判断不出来按下了什么键,所以前面 if event.type==pygame.KEYDOWN: 这句代码至关重要,表示了你按下键后才进行判断。你可以运行程序感受一下。

👸小媛:哈哈哈,好好玩,我按下什么就显示什么。 😎

🐰小C:都正确响应了吧?

👸小媛:是的。

🐰小C:那么我们接下来就需要控制角色进行移动了。

👸小媛:我觉得有点会了,但是还需要你写出来看一下,我总感觉我会出错。

🐰小C:我们先控制角色左右移动吧?

👸小媛:可以呀,没问题。 😎

🐰小C:我们知道,在这个屏幕中左右是控制 X 坐标,X越大那么越靠右,X越小那么就越靠左,我们按下左键的时候 X 轴的值就应该变小,如果按下右键那么 X 轴的值就应该越大。我们只需要在按下左右键的时候给一个变量赋予一个正值或者负值,正值表示往右负值表示往左,并且每次 hero 主句的 X 轴的值加上这个值就可以了。

import pygame

pygame.init()
screen=pygame.display.set_mode((600,800))
pygame.display.set_caption("这是一个飞机游戏")
icon=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
hero=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
bg=pygame.image.load(r'E:\2dsrc\src\img\bg.png')
pygame.display.set_icon(icon)
heroX=250
heroY=680
stepX=0
#游戏主循环
while True:
    #事件遍历
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            exit()
        if event.type==pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT:
                stepX=5
            elif event.key == pygame.K_LEFT:
                stepX=-5
            elif event.key == pygame.K_UP:
                print('↑')
            elif event.key == pygame.K_DOWN:
                print('↓')
    heroX+=stepX
    screen.blit(bg,(0,0))
    screen.blit(hero,(heroX,heroY))
    pygame.display.update()

👸小媛:你在按下右键的时候给予了 stepX 变量正值,按下左键给予了 stepX 键负值,然后每次循环 heroX 就加上这个 stepX 值,这样按下左就可以一直往左?按下右就可以一直往右?

🐰小C:是的。

👸小媛:所以你把 hero 的 Y 值使用了变量 heroY,这样也是为了方便操作吧?

🐰小C:是的,观察挺仔细,注意,我在循环前是创建了这几个变量的。

heroX=250
heroY=680
stepX=0

👸小媛:明白。

🐰小C:那我给你一个完整的代码吧。

import pygame

pygame.init()
screen=pygame.display.set_mode((600,800))
pygame.display.set_caption("这是一个飞机游戏")
icon=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
hero=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
bg=pygame.image.load(r'E:\2dsrc\src\img\bg.png')
pygame.display.set_icon(icon)
heroX=250
heroY=680
stepX=0
stepY=0
#游戏主循环
while True:
    #事件遍历
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            exit()
        if event.type==pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT:
                stepX=5
            elif event.key == pygame.K_LEFT:
                stepX=-5
            elif event.key == pygame.K_UP:
                stepY=-5
            elif event.key == pygame.K_DOWN:
                stepY=5
    heroX+=stepX
    heroY+=stepY
    screen.blit(bg,(0,0))
    screen.blit(hero,(heroX,heroY))
    pygame.display.update()

👸小媛:上面的 stepY 就是新创建的变量用来判断是按上还是按下?

🐰小C:是的,跟 stepX 一样。

👸小媛:哈哈哈,可以移动了。 😎

<p>尹成Python27天从入门到实战项目!全课665节讲解详细易操作,助力实战项目能力成长,轻松、简单、易懂!</p> <p><img src="https://img-bss.csdnimg.cn/202012050840001652.png" alt="" /></p> <p>day1  python入门与学习方法<br />精确思维与用到才能记忆深刻<br />课程简介<br />课前介绍<br />计算机简介与硬盘概念<br />内存作用<br />计算机小结<br />编程语言简介<br />操作系统简介<br />python版本简介<br />切换python版本修改环境变量<br />交互式编程两种风格<br />python3代码保存必须是utf-8<br />使用IDE了解注释<br />段落打印三引号<br />注释多行三个单引号<br />python代码要严格对齐<br />中文输入字符错误<br />简单数学表达式<br />代码风格<br />三种错误风格<br />系统执行指令<br />运行结果乱码<br />交互式编程绘图<br />绘制线段与圆形改变颜色<br />绘制奥运五环<br />小结<br />习题<br /><br />day1plus python  常量变量数据类型 <br />常量与变量区别<br />标识符<br />关键字<br />输入输出<br />id求地址type求类型<br />python变量是地址赋值可以改变类型<br />python主要数据类型<br />复数数据类型<br />自适应变长整数int<br />del作用<br />连续赋值<br />交互对称赋值<br />字符串转化与输入输出编程wmv<br />多行拆分<br />多行归并成一行<br />规范用的常量<br />算术运算符<br />科学计数法与数字越界<br />优先级结合性<br />赋值运算符<br />数据类型转换<br />四舍五入<br />数据提取<br />时间处理<br />作业<br /><br />day2   python字符串与绘图<br />复习<br />变量None<br />变量参与运算没有赋值的情况不会改变<br />绘制立方体<br />绘制五角星<br />时间计算强化<br />实现贷款计算<br />连续输入多个<br />字符串加法与绘图<br />实现显示线段长度<br />数据函数使用<br />快速查阅函数帮助<br />字符串三种风格<br />字符与编号<br />中文字符编号问题<br />字符编号用途<br />统一码<br />转义字符意义<br />转义字符用于字符串<br />print高级用法<br />字符串加法与转换<br />字符串小结<br />python中所有的数据都是对象<br />字符串格式化<br />了解进制<br />图形绘制<br />重点作业以及学习认知方法<br /><br />day3   python运算符与ifelse逻辑语句<br />第一天上午回顾<br />第二天下午回顾1<br />第二天回顾<br />2.7习题解答<br />2.11习题解答<br />2.26作业<br />KaliLinux简介<br />3.4实现五边形面积计算<br />3.7随机字符生成<br />3.8实数误差与四舍五入<br />3.18解答与特殊字符<br />if简介与空格的作用<br />if处理的是逻辑表达式<br />关系运算符针对数值<br />字符串的关系运算符<br />if自动转化Bool类型<br />随机数<br />if缺点<br />且运算符<br />或运算符<br />取反运算符<br />短路效应<br />身份运算符<br />运算符优先级结合性概览<br />pass语句<br />潜台词翻译系统<br />None用途<br />指令翻译系统<br />嵌套<br />嵌套与elif对比以及注意细节<br />习题解答<br />绘图<br />作业与重点<br /><br />day4  语音合成与逻辑循环<br />回顾<br />语音合成<br />简单理解while<br />控制次数<br />WhileElse<br />WhileElse实战<br />whileFloat<br />回顾与ifelse表达式<br />赌博概率<br />分类设计方法-一元二次方程<br />嵌套求有序3个数<br />闰年计算<br />矩形区域<br />随机数ifelse<br />回文数判断<br />10进制转化16进制<br />16进制转十进制<br />暴力穷举<br />无限循环指令<br />循环同步异步<br />黑科技读写内存<br />读写内存无限循环监测<br />重点与作业<br /><br />day5  复杂逻辑循环<br />while与whileelse编程风格<br />循环控制图形绘制<br />while猜数字<br />输入输出重定向<br />while习题分析<br />可以退出的命令系统<br />for初步简介<br />跑分<br />流程结合<br />for循环<br />小结<br />forfor嵌套<br />forfor分析<br />break中断循环<br />contiune结束本次循环<br />双层循环的break与continue分析<br />break与contiue小结<br />一闪一闪亮晶晶<br />循环控制大小与位置<br />对角线<br />绘制圆形<br />口顺时针运动<br />循环等价<br />作业与小结<br /><br />day6  函数实战<br />回顾.<br />算学费<br />输入数据求最大<br />精确划分思维解决最大次大<br />交换数据<br />实现按行显示<br />围棋棋盘绘制<br />国际象棋绘制<br />为什么要用函数<br />函数的四种类型<br />函数的一般形式<br />必须用函数的理由-哥德巴赫<br />函数的本质就是地址<br />函数变量意义<br />函数变量用途<br />装饰器设计模式包含模式<br />函数概念<br />None函数<br />默认参数与返回值作为参数<br />名称参数与位置参数<br />参数副本机制<br />副本练习<br />多个返回值<br />全局变量与局部变量<br />函数内部引用全局变量<br />函数可以嵌套<br />nolocal处理函数嵌套变量<br />函数nonlocal<br />nonlocal<br />总结<br />开房数据查询<br /><br />day7      函数实战与常用数据结构<br />函数的两种类型<br />函数的本质再分析<br />函数地址切换切换功能<br />ifelse配合地址筛选<br />函数收费<br />函数调用过程<br />函数基本小结<br />return小结<br />位置参数与默认参数<br />混合参数填充<br />混合填充错误情况<br />lambda匿名函数<br />可变长函数<br />字符串常识普及<br />字符串特点<br />字符串不可以修改内部字符<br />list列表<br />list用途<br />tuple简介<br />集合运算<br />字典概念<br />in与notin运算符<br />构造表达式<br />转换数据类型<br />系统小结<br />拓展查询<br />作业<br /><br />day8   字符串实战<br />简单回顾<br />eval与exec简介<br />字符串的简单规范<br />字符串的截取<br />字符串赋值规范<br />字符串转义字符<br />字符串常见运算符<br />字符串格式化<br />字符串格式化强化<br />字符串编码简介<br />dir与help查看str<br />字符串函数第一个大写以及字符串居中显示打印金字塔<br />count统计字符串出现个数<br />字符串编码注意事项<br />解码失败<br />判断字符串以什么为结束<br />tab键转换<br />find函数与rfind函数<br /><br />day9   字符串高级<br />简单回顾..<br />eval与exec简介<br />字符串的简单规范<br />字符串的截取<br />字符串赋值规范<br />字符串转义字符<br />字符串常见运算符<br />字符串格式化<br />字符串格式化强化<br />字符串编码简介<br />dir与help查看str<br />字符串函数第一个大写以及字符串居中显示打印金字塔<br />count统计字符串出现个数<br />字符串编码注意事项<br />解码失败<br />判断字符串以什么为结束<br />tab键转换<br />find函数与rfind函数<br />index函数与rindex函数<br />字符串判断<br />字符串间隔求长度以及左右填充<br />字符串大小写<br />取出最大最小字符<br />替换<br />去除空格<br />简单切割<br />换行切割<br />判断开头<br />大小写切换以及填充0<br />翻译表.<br />字符串模板<br />小结<br /><br />day10  字符串集合与语音识别实战<br />回顾l<br />set初始化风格<br />set增加与去重<br />set删除元素<br />遍历set<br />类型转化<br />set无法操作单个元素的赋值<br />set常见方法<br />set常见运算符<br />set关系运算符判断包含<br />set集合判断<br />frozenset<br />字典的基本定义循环<br />字典判断在不在实现插入与更新<br />字典删除<br />字典详解<br />字典与set无法嵌套<br />迭代器<br />列表生成式<br />生成器<br />生成器节省内存用于循环<br />生成器yield作用<br />生成器简介<br />测试<br />游戏简介<br />游戏初级修改<br />键盘模拟<br />语音控制游戏实现<br />鼠标模拟<br />代码规范函数简化重用<br />列表与元组小结<br />作业<br /><br />day11  阶段综合练习<br />昨日回顾.<br />堆栈<br />函数模块引用<br />系统模块引用与错误<br />列表生成式的若干方法<br />生成矩阵<br />str与repr<br />python把输入输出设备当作文件处理<br />写入中文写入英文<br />读取中文读取英文<br />读取错误<br />写入错误处理<br />文件缓存区<br />文件读取若干种方式<br />for循环按行读取数据<br />文件指针seektell<br />数据结构与文件的交互<br />数据查询并保存结果<br />数据查询<br />小结与数据<br /><br />day12downwithoutdata  数据处理开发<br />大数据指令<br />数据清洗的概念<br />初级数据清洗<br />密码排序<br />次数统计<br />QQ密码概率分布<br />QQ号码分类器.<br />开房数据清洗..<br />区域划分<br />省份划分<br />年龄<br />月份划分<br />日划分<br /><br />day12up  数据实战<br />简单回顾12<br />系统默认编码中文编码常见错误<br />字符串切割<br />抓取邮箱<br />抓取用户名与密码<br />排序密码文件<br />统计次数排序.<br />统计文件密码次数<br />密码次数排序<br /><br />day13withoutdata  数据分类与list深入<br />地区分类详解<br />字典分类器<br />数据简单归并<br />数据如何切割<br />数据加密<br />数据解密<br />指令执行判断<br />文件夹编程小结<br />列表归并-删除<br />列表归并-下标<br />小结与作业<br /><br />day14down   面向对象编程与深浅拷贝<br />面向对象与过程的差异<br />self用途<br />动态绑定增加属性方法<br />重载运算符的概念<br />有名对象与匿名对象<br />重载运算符的返回值<br />重载运算符多个类型<br />类的拷贝是浅复制<br />深浅拷贝<br />函数调用参数副本原理<br />函数调用可以改变list的元素不可以改变list指向<br />对象当作参数的细节<br />私有变量<br />私有变量用于设计权限<br />私有方法用于设计权限<br />私有变量本质<br />用类的方式读取文件行数<br />密码次数归并<br />数据处理方法简介<br />今日小结<br />作业wmv<br /><br />day14up  暴力穷举与类<br />回顾....<br />排列<br />组合<br />暴力生成穷举密码<br />密码破解必破生成器<br />密码破解小结<br />为啥使用类-代码重用<br />类的一般形式<br />详解self<br />构造函数与析构函数<br />构造函数初始化类的属性<br />最简洁的UI<br />设定窗体的位置以及大小<br />类的实际用途<br /><br />day15down  面向对象数据搜索实战<br />输入处理<br />文本编辑器<br />表格数据<br />树状显示<br />数据搜索可视化第一步实现查询窗体<br />数据搜索可视化第二步实现搜索数据<br />数据搜索可视化第三步实现显示窗体<br />数据可视化第四步显示与搜索串联<br />数据可视化终结<br />作业<br />小结<br /><br />day15up  面向对象设计与图像界面上<br />设计一个类<br />发短信<br />类的方法设计一下短信<br />发送邮件<br />类的设计-设计发邮件<br />类的多文件引用<br />腾讯营销类的设计<br />消息循环<br />消息回掉函数机制<br />lambda按下按钮<br />标签显示文本<br />文本输入框<br />list<br />combobox选择列表<br /><br />day16up  面向对象与图形界面开发下<br />设计一个类<br />发短信<br />类的方法设计一下短信<br />发送邮件<br />类的设计-设计发邮件<br />类的多文件引用<br />腾讯营销类的设计<br />消息循环<br />消息回掉函数机制<br />lambda按下按钮<br />标签显示文本<br />文本输入框<br />list<br />combobox选择列表<br /><br />day17  面向对象继承实战<br />昨日小结.,.<br />继承的概念<br />多继承的概念<br />多继承的覆盖<br />私有变量不可以被继承<br />Object类<br />类的常见属性<br />super解决父类重复初始化<br />isinstance<br />多态<br />静态方法<br />类方法<br />数据工具1类的继承<br />数据工具实现<br />小结<br /><br />day18down  正则表达式<br />正则表达式bB<br />贪婪与非贪婪<br />标签.<br />标签解决提取<br />标签名称<br />提取QQ生成邮箱列表工具<br />简单正则表达式编写<br />常见的正则表达式<br />复杂正则表达式编写<br />复杂表达式代码验证<br />作业与小结<br /><br />day18up 正则表达式实践<br />为什么使用正则表达式<br />正则表达式匹配.<br />预编译的概念<br />搜索技能<br />搜索用在找出第一个<br />邮箱手机提取findall<br />字符串切割<br />筛选正则表达式<br />正则表达式替换<br />单个字符判断<br />中括号选择一个字符<br />正则表达式次数<br />正则开头结尾<br />括号与选择<br />正则表达式特殊符号<br /><br />day19down 递归与爬虫实战<br />函数递归模拟<br />文件树<br />文件树事件<br />读取网页<br />抓取邮箱<br />抓取QQ<br />提取http<br />抓取邮箱简单程序框架实现<br />抓取邮箱的框架核心两个函数完成<br />广度遍历<br />深度遍历<br />作.业<br /><br />day19up 深度遍历与广度遍历<br />正则表达式小结<br />最简单递归<br />递归顺序<br />递归求和<br />递归腾讯台阶面试题<br />文件夹的函数<br />遍历文件夹<br />遍历文件夹有层次感<br />栈模拟递归<br />栈模拟递归遍历文件夹<br />栈模拟递归遍历文件夹层次感<br />普及网站提取概念<br />栈修改的逻辑错误<br />广度遍历<br /> <br />day20 正则 爬虫实战<br />行情简介<br />提取页面信息<br />提取股票代码<br />提取股票代码<br />下载功能<br />下载股票<br />批量下载股票<br />抓取1页的股票数据<br />抓取多个页面的股票<br />抓取基金信息<br />作业<br /><br />day21  网络编程与信息安全<br />网络概念<br />UDP协议<br />UDP通信<br />UDP远程控制<br />TCP通信<br />TCP控制<br />测试网站后台<br />网站密码破解<br />作业<br /> <br />day22down  线程通信<br />线程通信<br />线程通信强化<br />线程condition<br />高级线程调度<br />生产者消费者<br />线程池<br />延时线程<br />with作用<br />前台进程后台进程<br />TLS线程独立存储<br />作业<br /><br />day22up  多线程实战<br />多线程核心目标并发<br />主线程与小弟线程<br />多线程解决加速<br />多线程的加速<br />线程冲突<br />基于类实现多线程<br />基于类实现多线程的顺序与乱序<br />互斥锁解决线程冲突<br />死锁-使用锁要注意<br />Rlock解决一个线程反复加锁单线程死锁<br />创建线程的三种风格<br />信号量限制线程数量<br />限定线程数量<br /><br />day23  多进程实战<br />多线程回顾<br />多进程拷贝代码<br />多进程拷贝全局变量<br />获取进程编号<br />subprocess执行LinuxShell<br />信号<br />Linux进程小结<br />__name__<br />进程mutiprocessing创建过程<br />join作用<br />进程不可以用全局变量共享数据<br />进程同步<br />进程pipe发送接收数据<br />进程队列<br />进程队列传输数据<br />进程共享数据<br />进程之间共享数组<br />进程共享字典与list<br />简单小结<br /><br />day23down  多进程多线程综合实战<br />读取CSV<br />写入csv<br />单线程统计行数<br />多线程统计行数<br />多进程统计行数<br />多线程检索数据第一步<br />多线程检索赵琳<br />多线程检索找到通知其他人退出<br />多线程检索开放数据并保存同一个文件<br />作业<br /><br />day24up  多进程多线程综合实战<br />多进程检索第一步<br />多进程检索开房数据<br />求平均市值<br />多线程解决平均市值<br />多进程统计平均市值<br />单线程BFS抓取邮箱<br />多线程并行抓取邮箱<br />多线程采集邮箱并保存<br />csv归并<br />多线程归并文件<br /><br />day25down 文件格式处理<br />doc处理<br />系统处理doc与docx<br />文件处理的小结<br />读取并写入xls与xlsx<br />读取网络pdf<br />中文pdf<br />telnet简介<br />登陆Linux<br />登陆Windows<br />小结<br /><br />day25up  时间编程与单元测试<br />时间的简单风格<br />时间格式化<br />抓取年月日计算时间差<br />时间函数<br />计算时间差<br />date小结<br />python2与3的差异<br />内置函数筛选<br />内置函数map<br />内置的函数sorted<br />新浪数据抓取实时<br />文档测试<br />单元测试函数<br />单元测试一个类<br /><br />day26  综合实战<br />播放音乐<br />设置背景<br />鬼程序<br />协程简介<br />协程传递数据wmv<br />协程编号<br />协程生产者消费者模式<br />office自动化操作word<br />office办公自动化操作excel<br />office办公自动化操作outlook<br />office办公自动化<br />access开发环境配置<br />访问mdb格式<br />访问accdb格式<br />实现CGI程序显示页面<br />环境变量<br />cgi处理前后端<br /><br />day26down  破解wifi实战<br />扫描wifi<br />扫描网卡<br />区分链接成功或者失败<br />wifi密码爆破工具设计<br />Linux破解简介<br /><br />day27down  飞机大战实战<br />命令行下脱裤<br />创建一个pygame窗体<br />窗体加载背景图片<br />处理消息<br />飞机移动<br />实现基本框架<br />飞机框架<br />飞机销毁<br />双机对战<br />双机对战加载子弹<br />双机与敌机出现发射子弹<br /><br />day27up  数据库实战<br />jython的安装<br />MySQL简介<br />数据库的一般操作<br />MySQL数据类型<br />数据表的创建于删除<br />数据的查询<br />数据的插入<br />数据的删除<br />数据的更新<br />联合查询字段一致<br />数据查询排序<br />排序与分组<br />join与null<br />mysql用python编程查询数据<br />python数据库增删查改<br />项目简介<br /><br />other  异常与错误综合练习<br />异常与错误的概念<br />作业<br />tryexcept解决异常不出错继续执行<br />密码破解工具<br />进攻数据库<br />爆破mysql<br />异常else<br />异常处理的标准公式<br />弹出异常<br />withas<br />类中使用异常<br />继承<br />自定义异常<br />断言<br />密码工具设计三个独立的类<br />密码工具2类链接3类<br />密码工具1类链接3类<br />密码工具分析<br />作业<br /><br />speech   语音识别问题解决<br />语音识别解决None</p>
相关推荐
<p> <span style="color:#337FE5;font-size:16px;">【课程简介】</span> </p> <p> <br /> </p> <p> <span style="font-size:14px;">本课程基于面向Python的OpenCV,以OpenCV的官方文档的知识脉络为主线,</span><span style="font-size:14px;">介绍了OpenCV函数的具体使用方法、函数所使用的算法的具体原理。</span> </p> <p> <span style="font-size:14px;">在介绍函数使用时,提供了大量的程序案例演示。</span> </p> <p> <span style="font-size:14px;">在介绍具体原理时,采用了通俗易懂的语言和贴近生活的示例来说明问题,尽量避免涉及过于复杂抽象的公式。</span> </p> <p> <span style="font-size:14px;"> 课程包含数字图像处理的常用知识点,覆盖面全,方便学员系统深入全面地掌握OpenCV。</span> </p> <p> <br /> </p> <p> <span style="font-size:16px;color:#337FE5;">【你将收获什么】</span> </p> <p> <span style="font-size:16px;color:#337FE5;"><span> </span></span> </p> <p align="left" class="ql-long-10663260 ql-align-left" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;">1.  掌握数字图像的在计算机内表示</span><span style="font-size:14px;"></span><span style="font-size:14px;">的方法和处理的基本原理。掌握数字图像的表示方法是进行图像处理的前提和基础,能够为后续的智能图像处理打下坚实基础。</span> </p> <p align="left" class="ql-long-10663260 ql-align-left" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;">2.  使用好OpenCV开源库对于提升工作效率具有很大的帮助。OpenCV是优秀的开源库,提供了大量的函数帮助我们提升工作效率。大多数情况下,我们直接调用函数就能够满足我们的需求。同时,它的函数具有较好的交互性,能够根据需要更好地掌控图像处理的具体细节。</span> </p> <p class="ql-long-10663260" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;">3.  学习图像处理的常用算法。课程不仅介绍函数的具体使用,也介绍了常用算法的基本原理,帮助学习者更好地理解图像处理的基本逻辑、方法,快速入门图像处理领域。</span> </p> <br /> <p> <br /> </p> <p> <span style="font-size:16px;color:#337FE5;">【我将如何教你】</span> </p> <p> <span style="font-size:14px;">1)在“黑盒”和“白盒“之间取得平衡</span> </p> <p> <span style="font-size:14px;"> </span><span style="font-size:14px;">可以将OpenCV看成“黑盒”,不用关心其函数是如何实现的。在需要实现某一个功能时,直接调用其对应的函数即可,像使用Photoshop的各种功能一样。也可以将OpenCV看成“白盒”,关注其每一个函数的具体实现,认真研究每一个函数的具体实现方法和实现细节。这两种方式都是学习图像处理的很好方式,但是大多数课程过于强调其中某一种,要么忽略了算法的实现、要么忽略了使用方法。本课程尽量将OpenCV在“黑盒”和“白盒”之间取得平衡。既介绍算法的原理和方法,又将重点放在如何调用函数上,让学习者能够更加游刃有余地在计算机视觉项目中使用OpenCV来解决具体的问题。</span> </p> <p> <span style="font-size:14px;"><br /> </span> </p> <p> <span style="font-size:14px;">2)将枯燥的算法采用具体的案例介绍</span> </p> <p> <span style="font-size:14px;"> 在图像处理中,有大量的算法保证了</span><span style="font-size:14px;">图像处理的准确、高效。OpenCV将一些常用的算法进行了封装,我们可以直接调用OpenCV的函数来使用对应的算法。但是,深入地理解算法能够帮助学习者更好地使用OpenCV函数。本课程尝试抛弃传统的使用复杂公式介绍算法的形式,尽量通过简单、通俗易懂的生活中实例来帮助学习者理解算法的基本逻辑</span> </p> <p> <span style="font-size:14px;"><br /> </span> </p> <p> <span style="font-size:14px;">3)案例驱动、强调实战</span> </p> <p> <span style="font-size:14px;">OpenCV是一个庞大的资源库,提供了非常多的函数帮助我们高效地处理问题。初学者使用OpenCV的最大困惑就是熟练地掌握了每一个函数的调用方法,但是在解决实际问题时,不知道具体应该使用哪个函数。本课程通过大量的具体案例帮助学习快速掌握每个函数的应用场景,快速掌握OpenCV的核心使用方法和技巧。</span><br /> <span style="font-size:14px;"></span><span style="font-size:14px;"></span> </p>
<h3><span style="color: #3598db;">【为什么要学习这门课程】</span></h3> <p style="font-size: 16px;">深度学习框架如TensorFlow和Pytorch掩盖了深度学习底层实现方法,那能否能用Python代码从零实现来学习深度学习原理呢?</p> <p style="font-size: 16px;">本课程就为大家提供了这个可能,有助于深刻理解深度学习原理。</p> <p style="font-size: 16px;"><strong><span style="color: #ba372a;">左手原理、右手代码,双管齐下!</span></strong></p> <p style="font-size: 16px;">本课程详细讲解深度学习原理并进行Python代码实现深度学习网络。课程内容涵盖感知机、多层感知机、卷积神经网络、循环神经网络,并使用Python 3及Numpy、Matplotlib从零实现上述神经网络。本课程还讲述了神经网络的训练方法与实践技巧,且开展了代码实践演示。课程对于核心内容讲解深入细致,如基于计算图理解反向传播算法,并用数学公式推导反向传播算法;另外还讲述了卷积加速方法im2col。</p> <p><span style="color: #3598db;"><strong>【课程收获】</strong></span></p> <p style="font-size: 16px;">本课程力求使学员通过深度学习原理、算法公式及Python代码的对照学习,摆脱框架而掌握深度学习底层实现原理与方法。</p> <p style="font-size: 16px;">本课程将给学员分享深度学习的Python实现代码。课程代码通过Jupyter Notebook演示,可在Windows、ubuntu等系统上运行,且不需GPU支持。</p> <h3 class="MsoNormal" align="left"><span style="color: #3598db;">【优惠说明】</span></h3> <p align="left"><strong><span style="color: #ba372a;"><span lang="EN-US"> </span>课程正在优惠中!</span></strong></p> <p> </p> <p class="MsoNormal" align="left"><span lang="EN-US"> </span>备注:购课后可加入白勇老师课程学习交流<span lang="EN-US">QQ</span>群:<span lang="EN-US">957519975</span></p> <h3><span style="color: #3598db;">【相关课程】</span></h3> <p style="font-size: 16px;">学习本课程的前提是会使用Python语言以及Numpy和Matplotlib库。</p> <p>相关课程链接如下:</p> <p>《Python编程的术与道:Python语言入门》https://edu.csdn.net/course/detail/27845</p> <p>《玩转Numpy计算库》https://edu.csdn.net/lecturer/board/28656</p> <p>《玩转Matplotlib数据绘图库》https://edu.csdn.net/lecturer/board/28720</p> <h3><strong><span style="color: #3598db;">【课程内容导图及特色】</span></strong></h3> <p style="font-size: 16px;"><img src="https://img-bss.csdn.net/202002061409525148.jpg" alt="" /></p> <p style="font-size: 16px;"><img src="https://img-bss.csdn.net/202002061410073901.jpg" alt="" /></p>
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值