![](https://img-blog.csdnimg.cn/20210122191738617.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python入门
文章平均质量分 69
黑马python基础教程
王泽的随笔
这个作者很懒,什么都没留下…
展开
-
055_wz_hm_项目实战——飞机大战之碰撞检测
了解碰撞检测方法pygame提供了两个非常方便的方法可以实现碰撞检测:pygame.sprite.groupcollide()两个精灵组中所有的精灵的碰撞检测groupcollide(group1, group2, dokill1, dokill2, collide = None) -> Sprite_dict如果将dokill设置为True,则发生碰撞的精灵将被自动移除co...原创 2020-09-05 21:30:48 · 123 阅读 · 0 评论 -
054_wz_hm_项目实战——飞机大战之英雄
设计英雄和子弹类英雄需求:游戏启动后,英雄出现再屏幕的水平中间位置,距离屏幕底部120像素英雄每隔0.5秒发射一次子弹,每次连发三枚子弹英雄默认不会移动,需要通过左/右方向键控制英雄在水平方向的移动子弹需求子弹从英雄的正上方沿直线向上方飞行飞出屏幕后,需要从精灵组中删除子弹与英雄类Hero——英雄1. 初始化方法指定英雄图片初始速度 = 0——英雄默认静...原创 2020-09-05 20:23:14 · 91 阅读 · 1 评论 -
053_wz_hm_项目实战——飞机大战之敌机
敌机出场使用定时器添加敌机游戏启动后,每隔一秒出现一架敌机每架敌机向屏幕下方飞行,飞行速度各不相同每架敌机出现的水平位置也不尽相同当敌机从屏幕下方飞出,不会再飞回到屏幕中定时器在pygame中可以使用pygame.time.set_timer()来添加定时器,所有定时器,就是每隔一段时间,去执行一些动作set_timer(eventid, millisconds) ->...原创 2020-08-30 21:35:24 · 92 阅读 · 0 评论 -
052_wz_hm_项目实战——飞机大战之游戏背景
背景交替滚动的思路确定游戏启动后,背景图像会连续不断地向下方移动,在视觉上产生英雄飞机不断向上方飞行的错觉——在很多跑酷类游戏中常用的套路游戏的背景不断变化游戏的主角位置保持不变实现思路分析思路分析解决方法:创建两张背景图像精灵第一张完全和屏幕窗口重合第二张在屏幕的正上方两张图像一起向下方移动self.react.y += self.speed当...原创 2020-08-28 22:01:22 · 296 阅读 · 0 评论 -
051_wz_hm_项目实战——飞机大战之搭建框架
明确主程序职责回顾快速入门案例,一个游戏的主程序的职责可以分为两个部分:游戏初始化和游戏循环根据明确的职责,设计PlaneGame类如下:PlaneGame实现飞机大战主游戏类明确文件职责文件职责plane_main封装主游戏类创建游戏对象启动游戏pane_sprites封装游戏中所有需要使用的精灵子类提供游戏的相关工具代码实现...原创 2020-08-27 22:01:12 · 125 阅读 · 0 评论 -
050_wz_hm_项目实战——飞机大战之精灵与精灵组
精灵与精灵组在刚刚完成的案例中,图像加载、位置变化、绘制图像都需要程序员编写代码分别处理,为了简化开发步骤,pygame提供了两个类:·pygame.sprite.Sprite`——存储图像数据image和位置rect的对象pygame.sprite.Group注:sprite是精灵的意思,group是组、群的意思精灵与精灵组派生精灵子类新建plane_sprites...原创 2020-08-22 20:47:58 · 317 阅读 · 0 评论 -
049_wz_hm_项目实战——飞机大战之事件监听
在游戏循环中监听事件事件(event):就是游戏启动后,用户针对游戏所做的操作,例如点击关闭按钮、点击鼠标、按下键盘...监听:在游戏循环中,判断用户具体的操作,只有捕获到用户具体的操作,才能有针对性的做出响应实现:pygame中通过pygame.event.get()可以获得用户当前所做动作的事件列表,用户可以在同一事件做很多事情提示:这段代码非常固定,几乎所有的pygame游戏都...原创 2020-08-21 21:31:19 · 157 阅读 · 0 评论 -
048_wz_hm_项目实战——飞机大战之游戏循环
理解游戏循环和游戏时钟现在英雄飞机已经被绘制到屏幕上了,怎样能让飞机移动呢?游戏中的动画实现原理跟电影的原理类似,游戏中的动画效果,本质上是快速的在屏幕上绘制图形,一般在电脑上每秒绘制60次就能达到非常连续高品质的动画效果游戏循环游戏循环的开始就意味着游戏的正式开始游戏循环游戏循环的作用:保证游戏不会直接退出变化图像位置——动画效果每隔1/60移动一下所有图像的位置...原创 2020-08-21 20:56:37 · 105 阅读 · 0 评论 -
047_wz_hm_项目实战——飞机大战之图像绘制
理解图像并实现图像绘制在游戏中,能够看到的游戏元素大多都是图像,图像文件初始是保存在磁盘上的,如果需要使用,第一步就需要被加载到内存,要在屏幕上看到某一个图像的内容,需要按照三个步骤:使用pygame.image.load()加载图像的数据使用游戏屏幕对象调用blit方法将图像绘制到指定位置调用pygame.display.update()方法更新整个屏幕的显示图像绘制流程提...原创 2020-08-20 21:19:42 · 134 阅读 · 0 评论 -
046_wz_hm_项目实战——飞机大战之游戏窗口
目标强化面向对象程序设计体验使用pygame模块进行游戏开发实战步骤pygame快速体验飞机大战实战pygame快速入门项目准备新建飞机大战项目新建一个wz_001_pygame入门.py导入游戏素材图片游戏的第一印象:把一些静止的图像绘制到游戏窗口中根据用户的交互或其他情况,移动这些图像,产生动画效果根据图像之间是否发生重叠,判断敌机是否被摧毁等其他情...原创 2020-08-20 20:31:19 · 122 阅读 · 0 评论 -
045_wz_hm_eval函数
eval()函数十分强大——将字符串当成有效的表达式来求值,并返回计算结果eval计算器2020.8.19原创 2020-08-19 20:43:21 · 63 阅读 · 0 评论 -
044_wz_hm_文件
文件的概念文件的概念和作用计算机的文件,就是存储在某种长期储存设备上的一段数据长期储存设备包括:硬盘、U盘、光盘...文件的作用:将数据长期保存下来,在需要时使用文件的存储形式在计算机中,文件是以二进制的方式保存在磁盘上的文本文件和二进制文件文本文件可以使用文本编辑软件查看本质上还是二进制文件例如:python的源程序二进制文件保存的内容不是给人直接...原创 2020-08-18 22:06:16 · 110 阅读 · 0 评论 -
043_wz_hm_包
概念包(package)是一个包含多个模块的特殊目录目录下有一个特殊文件__init__.py包名的命名方式和变量名一致,小写字母+_使用import 包名可以一次性导入包中的所有模块案例演练新建一个hm_message的包建包在目录下,新建两个文件send_message和receive_messagesend_meaasgereceiv...原创 2020-08-17 21:31:31 · 108 阅读 · 0 评论 -
042_wz_hm_模块
模块的概念模块是python程序架构的一个核心概念每一个以扩展名py结尾的python源代码文件都是一个模块模块名同样也是一个标识符,需要符合标识符的命名规则在模块中定义的全局变量、函数、类都是提供给外界直接使用的工具模块就好比是工具包,要想使用这个工具包中的工具,就需要先导入这个模块模块导入的两种方式import导入import 模块名1, 模块名2注意:在导入模块时,...原创 2020-08-16 20:52:37 · 154 阅读 · 0 评论 -
041_wz_hm_异常
异常的概念程序在运行时,如果python解释器遇到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出(raise)异常异常程序开发时,很难将所有的特殊情况都处理的面面俱到,通过异常捕获可以针对突发事件做集中的处理,从而保证程序的稳定性和健壮性捕获异常简单的捕获异常语法在程序开发中,如果对某些代码的执...原创 2020-08-16 20:52:33 · 122 阅读 · 0 评论 -
040_wz_hm_单例
单例设计模式设计模式:设计模式时前人工作的总结和提炼,通常被人们广泛流传的设计模式都是针对某一特定问题的成熟的解决方案,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码的可靠性单例设计模式:目的是让类创建的对象在系统中只有唯一的一个实例,每一次执行类名()返回的对象,内存地址是相同的应用场景:音乐播放对象回收站对象打印机对象.......__ new __方法...原创 2020-08-15 20:13:16 · 59 阅读 · 0 评论 -
039_wz_hm_方法综合案例
需求:设计一个Game类属性:定义一个类属性top_score记录游戏的历史最高分定义一个实例属性player_name记录当前游戏的玩家姓名方法:静态方法show_help显示游戏帮助信息类方法show_top_score显示历史最高分实例方法start_game开始当前玩家的游戏主程序步骤:1)查看帮助信息2)查看历史最高分类结构...原创 2020-08-15 20:13:08 · 111 阅读 · 0 评论 -
038_wz_hm_类属性与类方法
类的结构术语——实例使用面向对象开发,第一步是设计类使用类名()创建对象的动作有两步:1)在内存中为对象分配空间2)调用初始化方法 __init__为对象初始化对象创建后,内存中就有了一个对象的“物理存在”——实例实例因此,通常也会把创建出来的对象叫做类的实例,创建对象的动作叫做实例化,对象的属性叫做实例属性,对象调用的方法叫做实例方法在程序执行时,对象各自拥有自己的...原创 2020-08-14 09:04:56 · 110 阅读 · 0 评论 -
037_wz_hm_多态
面向对象三大特性封装:根据职责将属性和方法封装到一个抽象的类中定义类的准则继承:实现代码的重用,相同的代码不需要重复的编写设计类的技巧子类针对自己特有的需求,编写特定的diamagnetic多态:不同的子类对象调用相同的父类方法,产生不同的执行结果多态可以增加代码的灵活度以继承和重写父类方法为前提是调用方法的技巧,不会影响到类的内部设计多态...原创 2020-08-13 17:49:49 · 86 阅读 · 1 评论 -
036_wz_hm_继承
面向对象三大特性封装根据职责将属性和方法封装到一个抽象的类中继承实现代码的重用,相同的代码不需要重复的编写多态不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度单继承继承的概念、语法和特点概念:子类拥有父类的所有方法和属性继承语法:class 类名(父类名): pass字类继承自父类,可以直接享受父类中已经封装好的方法,不需要再次开发子类中应该...原创 2020-08-13 17:03:33 · 71 阅读 · 0 评论 -
035_wz_hm_私有属性和私有方法
私有属性和私有方法应用场景及定义方式应用场景:在实际开发中,对象的某些属性或方法可能只希望在对象的内部被使用,而不希望再外部被访问到私有属性就是对象不希望公开的属性私有方法就是对象不希望公开的方法定义方式:在定义属性或方法是,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法格式:# 私有方法__方法名():# 私有属性__属性名私有方法与属...原创 2020-08-08 22:24:46 · 92 阅读 · 0 评论 -
034_wz_hm_面向对象封装案例II
士兵突击需求:士兵 许三多有一把AK47士兵可以开火枪能够发射子弹枪能够装填子弹——增加子弹数量枪类设计开发士兵类假设:每一个新兵都没有枪定义没有初始值的属性可以使用关键字NoneNone关键字表示什么都没有表示一个空对象,没有方法和属性,是一个**特殊的常量88可以将None赋值给任何一个变量fire方法:判断士兵是否有枪有枪装填子弹...原创 2020-08-08 21:51:09 · 67 阅读 · 0 评论 -
033_wz_hm_面向对象封装案例
封装封装时面向对象编程的一大特点面向对象编程的第一步——将属性和方法封装到一个抽象的类中外界使用类创建对象,然后让对象调用方法对象方法的细节都被封装在类的内部小明爱跑步需求:小明 体重75.0公斤小明每次跑步会减肥0.5公斤小明每次吃东西体重增加1公斤注:使用名词提炼法,提取出个人信息(属性),动作(方法)小明爱跑步提示:在对象的方法内部,是可以直接...原创 2020-08-07 09:37:59 · 91 阅读 · 0 评论 -
032_wz_hm_面向对象基础语法
dir内置函数(了解)在python中,对象几乎是无所不在的,之前学习的变量、数据、函数都是对象在python中可以使用以下两个方法验证:1.在标识符/数据后输入一个 . ,然后按下TAB键,ipython会提示该对象能够调用的方法列表2.使用内置函数dir传入标识符/数据,可以查看对象内的所有属性及方法提示:__方法名__ 格式的方法是python提供的内置方法/属性属性及方法查看定义...原创 2020-08-06 18:32:57 · 142 阅读 · 0 评论 -
031_wz_hm_类和对象
类和对象的概念类类是对一群具有相同特征或者行为的事物的一个同城,是抽象的,不能直接使用特征被称为属性行为被称为方法类就相当于制造飞机时的图纸,是一个模板,时负责创建对象的对象对象是由类创建出来的一个具体存在,可以直接使用由哪一个类创建出来的对象,就拥有哪一个类中定义的属性和方法对象就相当于用图纸制造的飞机在程序开发中,应该先有类,再有对象类和对象的关系类是模板,对象是根据类这个模板创建出来的,先有...原创 2020-08-06 18:32:39 · 102 阅读 · 0 评论 -
030_wz_hm_面向对象(OOP)基本概念
面向对象基本概念面向对象编程——Object Oriented Programming简写OOP过程与函数我们之前学习的编程方式就是面向过程的,面向过程和面向对象是两种不同的编程方式过程是早期的一个编程概念,类似于函数,只是执行,但是没有返回值,函数不仅能执行,还可以返回结果面向过程和面向对象基本概念面向过程——怎么做?1.把完成某一个需求发所有步骤从头到尾逐步实现2.根据开发需求,将某些功能独立...原创 2020-08-05 22:18:00 · 74 阅读 · 0 评论 -
029_wz_hm_函数的递归
函数的递归函数调用自身的编程技巧成为递归递归函数的特点特点:一个函数内部调用自己函数内部可以调用其他函数,当然在函数内部也可以调用自己代码特点:1.函数内部的代码是相同的,只是针对参数不同,处理结果不同2.当参数满足一个条件是,函数不再执行;这个非常重要,通常被称为递归的出口,否则会出现死循环递归案例——计算数字累加需求:1.定义一个函数sum_numbers2.能够接收一个num的整数参数3.计...原创 2020-08-05 21:09:14 · 69 阅读 · 0 评论 -
028_wz_hm_python函数进阶2
函数参数与返回值的作用函数根据有没有参数以及有没有返回值,可以相互组合,总共有四种组合形式1.无参数,无返回值2.无参数,有返回值3.有参数,无返回值4.有参数,有返回值参数与返回值定义函数时,是否接收参数或者是否返回结果,是根据实际的功能需求决定的:1.如果函数内部处理的数据不确定,就可以将外界大数据以参数传递到函数内部2.如果希望一个函数执行完成后,向...原创 2020-08-05 20:32:57 · 86 阅读 · 0 评论 -
027_wz_hm_python变量进阶
变量的引用变量和数据都是保存在内存中的,在python中函数的参数传递以及返回值都是靠引用传递的引用的概念:变量和数据是分开存储的,数据保存在内存中的一个位置,变量中保存着数据在内存中的地址,变量中记录数据的地址就叫做引用使用id()函数可以查看变量中保存数据所在的内存地址注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是修改了数据的引用,即变量不再对之前的数据引用,改为对新赋值的数据的引...原创 2020-07-29 15:48:52 · 64 阅读 · 0 评论 -
026_wz_hm_综合应用——名片管理系统
系统需求1.程序启动,显示名片管理系统欢迎界面,并显示功能菜单,新建名片、显示全部、查询名片、退出系统主功能界面2.用户用数字选择不同的功能3.根据功能选择,执行不同的功能4.用户名片需要记录用户的姓名、电话、QQ、邮箱信息展示界面5.如果查询到指定的名片,用户可以选择修改或者删除名片查询二级菜单界面步骤一、框架搭建1.准备文件,确定文件名,保证能够在需要的位置编写代...原创 2020-07-27 17:12:58 · 211 阅读 · 0 评论 -
025_wz_hm_python中的高级变量之公共方法
python的内置函数函数 描述 备注len(item) 计算容器中元素个数del(item) 删除变量 ...原创 2020-07-26 15:48:15 · 143 阅读 · 1 评论 -
024_wz_hm_python中的高级变量之字符串
字符串字符串就是一串字符,是编程语言中表示文本的数据类型在python中可以使用一对双引号或者和一对单引号定义一个字符串虽然可以使用\"或者\'做字符串的转义,但是在实际开发中:如果字符串内部需要使用",可以使用'定义字符串如果字符串内部需要使用',可以使用"定义字符串可以使用索引获取一个字符串中指定位置的字符,索引计数从0开始也可以使用for循环遍历字符串中每一个字符大多数编程语言都使用”来定义...原创 2020-07-26 09:53:40 · 256 阅读 · 0 评论 -
023_wz_hm_python中的高级变量之字典
字典字典(dictionary)是除列表以外python之中最灵活的数据类型,可以用来存储多个数据,通常用于存储描述一个物体的相关信息字典和列表的区别:列表是有序的对象集合;字典是无序的对象集合字典使用{}定义,例:xiaoming = {"name": "小明", "age": 18, "gender":True,...原创 2020-07-24 20:48:29 · 81 阅读 · 0 评论 -
022_wz_hm_python中的高级变量之元组
元组元组(Tuple)与列表类似,不同之处在于元组的元素不能修改,元组表示多个相同类型的元素或者不同类型的元素组成的序列元组在python开发中,有特定的应用场景,用于存储一串信息,数据之间使用,分隔元组用()定义,元组的索引从0开始,索引就是数据在元组中的位置编号例:info_typle = ("zhangsan", 18, 1.75)创建空元组info_tuple = ()元组中只包含一...原创 2020-07-24 15:55:17 · 70 阅读 · 0 评论 -
021_wz_hm_python中的高级变量之列表
列表list(列表)是python中使用最频繁的数据类型,在其他语言中通常叫做数组,专门用于存储一串信息列表用[ ]定义,数据之间使用,分割,例如:name_list = ["zhangsan", "lisi", "wangwu"]列表的索引从0开始,索引就是数据在列表中的位置编号,索引又可以被称为下标列表常用方法:1、list.append(obj):在列表末尾添加新的对象2、list....原创 2020-07-24 11:40:50 · 59 阅读 · 0 评论 -
020_wz_hm_python模块
模块是python程序架构的一个核心概念模块就好比是工具包,要想使用这个工具包中的工具,就需要导入import这个模块,每一个扩展名为py结尾的python源文件都是一个模块在模块中定义的全局变量、函数都是模块能够提供给外界直接使用的工具,导入之后,使用模块名.变量/模块名.函数,使用这个模块中定义的变量/函数,模块可以让曾经编写过的代码被复用工具模块测试模块注意:模块名也是一...原创 2020-06-08 11:24:49 · 96 阅读 · 0 评论 -
019_wz_hm_python函数进阶
函数的参数开发一个函数sum_Two实现两个数字的求和无参数函数求和发现问题了吗?这个函数只能实现固定数值的求和,过于鸡肋,于是我们应该使用函数的参数函数参数的使用:在函数名的后面的小括号内部填写参数,多个参数之间使用,分隔有参数函数求和参数的作用:增加函数的通用性 针对相同的数据处理模块 能够适应更多的数据形参和实参形参:定义函数时,小括号中的函数,是用来接收参数用的,在函数...原创 2020-06-08 10:44:48 · 74 阅读 · 0 评论 -
018_wz_hm_2020.5.19
之前一段时间没有更新内容是在准备研究生复试,今天中午收到研究生拟录取通知了,真的这一刻什么都值得了原创 2020-05-19 22:16:27 · 53 阅读 · 0 评论 -
017_wz_hm_python函数基础
函数:所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用函数的使用包含两个步骤:1.定义函数——封装独立的功能2.调用函数——享受封装的成果函数的作用:在开发程序时,使用函数可以提高编写的效率以及代码的重用函数的定义格式:def 函数名(): 函数封装的代码 ...1.def是英文define的缩写2.函数名称应该能够表达函数封装代码的功能,方便后续调用3....原创 2020-05-12 22:01:13 · 68 阅读 · 0 评论 -
016_wz_hm_python中的循环语句while进阶
一、break与continuebreak与continue是专门在循环中使用的关键字break某一条件满足时,退出循环,不再执行后续重复的代码continue某一条件满足时,不执行后续的代码,即结束本轮循环,直接从continue跳转到新的一轮循环开始注意:break与continue只针对当前所在的循环有效break前break后可以看到原本应该打印0—4,加入break后...原创 2020-05-11 10:12:58 · 102 阅读 · 1 评论