《Python课程资源》-9项目九人机猜拳_第1页
《Python课程资源》-9项目九人机猜拳_第2页
《Python课程资源》-9项目九人机猜拳_第3页
《Python课程资源》-9项目九人机猜拳_第4页
《Python课程资源》-9项目九人机猜拳_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目描述相信大家都玩过猜拳游戏,其中,“石头、剪刀、布”是猜拳的一种。在游戏规则中,石头胜剪刀,剪刀胜布,布胜石头。这是一种最普通、最流行而又历史最悠久的游戏玩法,玩起这个游戏,一定会令人想起快乐的童年时光。现要求编写一个程序,模拟用户和电脑的猜拳游戏比赛,并最终判定游戏的胜负结果。掌握了解掌握掌握掌握类的定义和创建对象、访问对象成员的用法23掌握属性和方法的定义掌握类的继承和方法的重写41了解面向对象技术的基本概念项目目标项目九人机猜拳9.1

认识面向对象学习目标010302了解面向对象技术的基本概念了解面向对象技术的基本概念了解抽象、消息的基本概念认

面向对象面向对象编程(ObjectOrientedProgramming,即OOP),指的是一种编程的思想,通过对具体代码实现过程(面向过程编程)的不断抽象,以形成一个个的类别,以提高我们进行大型程序编写的效率,并且可以使软件设计更加灵活,代码复用性更好。认

面向对象类:用来描述具有相同属性和方法的对象的集合。例如,把人类群体比作Person类,那么Person类具有性别、年龄、姓名、身高等属性,具有吃饭,睡觉等行为,而某学校某年级某班级某位同学就是Person类的一个对象。认

面向对象对象:对象是通过类定义的数据结构实例,通常将对象划分为两个部分,即静态部分与动态部分。静态部分被称为属性(property),如人的性别。动态部分指的是对象的方法(method),即对象执行的动作,如人的跑步行为。认

面向对象可以把玩具模型看作一个类把每个玩具看作一个对象认

面向对象抽象:抽取特定实例的共同特征,形成概念的过程。通过强调主要特征,忽略次要特征,以得到较简单的概念。例如狗、狼、豺、狐狸等,抽取出它们的共同特性就得出“犬科”这一类,那么得出“犬科”概念的过程就是一个抽象的过程。认

面向对象消息:消息是一个对象要求另一个对象实施某项操作的请求。软件对象通过相互间传递消息来相互作用和通信,一个消息由三部分组成:1.接受消息的对象2.接收对象要采取的方法3.方法需要的参数认

面向对象——小

结面向对象(ObjectOriented)是程序开发领域中的重要思想,它是一种更符合人类思维模式的设计思想类:描述具有相同的特征(属性)和行为(方法)对象的抽象定义(对象的模版)对象:某个类的具体实现(类的实例)项目九人机猜拳9.2

创建类与对象学习目标010302

熟悉如何创建对象

熟悉如何定义类掌握如何访问对象的属性和方法创建类与对象定义类类中可以定义数据成员和成员函数,数据成员用于描述对象特征,成员函数用于描述对象行为。Python中使用class关键字来定义类,语法格式如下:class类名:属性名=属性值

def方法名(self):方法体创建类与对象【例1:Exam9-1.py】定义Person类举例。创建类与对象对象的创建class语句本身并不创建该类的任何对象,在定义完类以后,可以创建类的对象,语法如下:对象名=类名(参数)例如:在刚才的例1中,创建一个Person类的对象p,代码如下:p=Person()创建类与对象访问对象成员1.访问对象属性

要访问对象的属性,可使用句点表示法,其语法格式如下:

对象名.属性

例如前面的Person类,在创建完对象p后,访问对象的属性,代码如下:print()print(p.age)创建类与对象2.访问对象方法

要访问对象的方法,使用的也是句点表示法,其语法格式如下:对象名.方法

例如访问对象p的对象,代码如下:p.speak()创建类与对象——小

结使用class关键字来定义类定义完类以后,通过对象名=类名(参数)的格式创建类的对象创建完对象,利用句点表示法调用对象的属性和方法项目九人机猜拳9.3

属性和方法学习目标010302熟悉类属性和实例属性了解构造方法和析构方法掌握类方法的三种类型属性和方法构造方法_

_init_

_(self)构造方法在调用类创建实例对象时自动被调用,完成对实例对象的初始化。

__init__(self)方法按照参数的有无(self除外)可分为无参构造方法和有参构造方法。属性和方法析构方法__del__()在删除对象来释放类所占用资源的时候,Python解释器会自动调用析构方法__del__()。【例4:Exam9-4.py】析构方法属性和方法类属性类属性是类所拥有的属性,它需要在类中进行显示地定义(位于类内部,方法的外面),它被所有类的实例对象所共有,对于公有的类属性,在类外可以通过类对象和实例对象访问。属性和方法实例属性实例属性不需要在类中显式定义,而应在构造函数中定义。实例属性在类内部通过“self.”访问,在外部通过实例对象访问属性和方法类的方法

类的方法主要有三种类型:实例方法、类方法和静态方法,不同的方法有不同声明调用形式和访问限制。属性和方法类的方法实例方法:在类中经常定义的成员方法,它至少有一个参数并且必须以实例对象作为其第一个参数,一般用“self”表示。在类的外部,只能通过实例对象来调用。属性和方法类的方法类方法:类方法需要用修饰器@classmethod来标识,其语法格式如下:

@classmethod

def类方法名(cls,[参数列表]):

方法体属性和方法类的方法静态方法:类方法需要用修饰器@staticmethod来标识,其语法格式如下:

@staticmethod

def静态方法名():

方法体属性和方法【例7:Exam9-7.py】静态方法属性和方法——小

结通过构造方法和析构方法初始化对象的属性和释放类所占有的资源。类属性可以通过类或者类的实例访问,实例属性只能通过类的实例访问。类的对象可以访问实例方法、类方法和静态方法,使用类可以访问类方法和静态方法。项目九人机猜拳9.4

三大基本特征学习目标010302掌握类的继承及方法的重写了解封装的概念了解多态的概念三大基本特征—封装通常把隐藏属性、方法与方法实现细节的过程称为封装。将某些部分隐藏起来,在程序外部看不到,其他程序无法调用,避免外界随意赋值。

要了解封装,离不开“私有化”,就是将类或者函数中的某些属性限制在某个区域之内,外部无法调用。

三大基本特征—封装Python中属性的封装可以采用如下方式实现:1、把属性定义为私有属性,即在属性前加双下划线“__”。2、添加可以供外界调用的两个方法,分别用于设置或者获取属性值。三大基本特征—继承1、继承的基本语法通过继承不仅可以实现代码的重用,还可以通过继承来理顺类与类之间的关系。继承的语法格式如下:

classClassName(baseclasslist):

statement三大基本特征—继承2、子类定义属性和方法一个类继承另一个类后,还可以添加子类自己的属性和方法。【Exam9-10.py】子类定义属性和方法三大基本特征—继承3、重写父类的方法子类可以继承父类的方法,对于继承的父类方法,只要它不符合子类模拟的实物的行为,都可对其进行重写,以实现理想的功能。为此,可在子类中定义一个这样的方法,即它与要重写的父类方法同名。这样,Python将不会考虑这个父类方法,而只关注你在子类中定义的相应方法。三大基本特征—多态多态是指同一名字的方法产生了多个不同的动作行为,也就是不同的对象收到执行相同的消息时产生不同的行为方式。三大基本特征——小

结将对象的属性和行为封装起来,通过私有化把类或者函数中的某些属性限制在某个区域之内子类通过继承复用了父类的属性和行为,同时也能添加子类特有的属性和行为。同一名字的方法产生了多个不同的动作行为就是多态。项目实现关于石头剪刀布这个小游戏,大致得到思路就是,玩家出一个手势,然后电脑再随机出一个手势,最后再判断是玩家获胜还是电脑获胜。最简单的思路就是将这三个手势是三个代号来表示,然后再去判断代号之间的关系,最后输出胜方。这里使用1、2、3数字来对三个手势进行代号化,如下所示:1代表石头,2代表剪刀,3代表布。石头>剪刀,剪刀>布,布>石头。使用三种分类方式:玩家赢、平局和电脑赢来进行三种判断,当玩家出石头(1)并且电脑出剪刀(2)或者玩家出剪刀(2)并且电脑出布(3)或者玩家出布(3)并且电脑出石头(1)这三种情况时,玩家赢;当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论