课后笔记及作业

类和对象

先介绍几个基本定义

类:class

1 类里面的函数叫做方法(类里面可以定义属性但是没有值,也可以定义方法但是无法使用只有对象才能使用)

类和对象的关系;类包含着对象,是包含关系,先定义类然后生成n个对象,生成的对象具有相同的属性和方法。类就是对对象的一种总结

2 类具有相同的属性和方法的对象的合集(每个对象里都有属性和行为,方法也叫作行为)

3 万物皆为对象

4 定义一个类的语法:

Class类名;

属性

方法

例如:

Class abc:

  def eat() :

     print(“正在吃饭”)

  def sleep():

      print(“正在睡觉”)

5 创建对象:属性写在类外的情况,就是通过对象.属性,对象.方法()的方式调用

调用对象的方法:

创建多个对象:

Self:

__init__(self):系统自动调用初始化的方法,先生成对象,再调用此方法,再将对象赋值给引用名

初始化操作:

如果做全局属性例如:

Class abc:

  def__init__(self,vname,vage)

  self.name=vname

  self.age=vage

  def say(self):

  print(“hello”)

生成对象:

张三=abc

张三.name=“张三”

张三.age=20

张三.say()

__str__()

Return xxx

属性对于类来说属于全局,每个方法都可以调用

如果要直接输出一个对象只会输出一个地址因为不知道要输出这个对象的什么内容(需要加上一个__str__方法然后再return一个内容,输出一个对象默认就是调用了__str__这个方法,写__str__必须符合他的要求,后面要加上一个返回值,返回什么都可以)

 

Get/set方法:

为什么要写get和set方法

Set是设置属性的值给属性赋值

Get是获取值

Set方法里可以进行判断

私有方法:def__test()只能在当前类中使用,以__开头

预习内容

类的继承:

1使用已存在的类定义创建新的类

2新类的定义中可以增加新的属性和方法

3如果b类继承a类,那么b类对象便具有a类的一切属性和方法

4称a类为基类或父类或超类

5.称b类为a额派生类或字类

6直接派生子类的父类为直接父类,间接派生子类的父类为间接父类

继承的优点:

1清晰体现相关类之间的层次结构

2减小数据和代码的沉余度,增加程序的重要性

3通过增加一致性,减少模块间的接口,增加程序的可维护性

单继承:

一个类只有一个直接父类

多继承:

一个类有多个直接父类

语法:

Class 子类(父类):

     类文档字符串

Def__init__(self.参数列表1)

   父类__init__(self,参数列表2)

。。。。。。

   子类新增的类成员

参数列表1中包含有父类和子类的属性

参数列表2中只包含父类的属性

课后作业
import random

changes = ["", "石头", "剪子", ""]
integral = 0
def show_changes():
    message = "\n"
    for index, value in enumerate(changes):
        if index == 0:
            continue
        message += "{0}. {1}".format(index, value)
        if index != len(changes) - 1:
            message += "  "
    return message
def compute_result(_me, _ra):
    global integral
    result = "错误"
    result = "平局" if _me == _ra else result
    result = "胜利" if _me == "1" and _ra == "2" or \
                        _me == "2" and _ra == "3" or \
                         _me == "3" and _ra == "1" else result
    result = "失败" if _me == "1" and _ra == "3" or \
                        _me == "2" and _ra == "1" or \
                         _me == "3" and _ra == "2" else result
    if result == "胜利":
        integral += 1
    if result == "失败":
        integral -= 1

    return result

def run_game():
    while 1:
        print(show_changes())
        _me = str(input("请出拳:").strip())
        _ra = str(random.randint(1, len(changes) - 1))
        res = compute_result(_me, _ra)

        try:
            changes[int(_me)]
        except:
            print("出拳错误!")
            continue

        print("你出<{0}> 对方出<{1}> 本次对战<{2}> 当前积分<{3}>".format(
                                                            changes[int(_me)],
                                                            changes[int(_ra)],
                                                            res,
                                                            integral
                                                            ))

        tp=input("\n请选择是否退出(yes/no: ").strip()
        if tp == "no":
            continue
        elif tp == "yes":
            print("已退出 !")
        else:
            print("输入错误,已退出游戏!")
        break

print("游戏开始")
while 1:
    print
    print("*********************")
    print("1. 开始新游戏")
    print("2. 载入游戏")
    print("3. 退出")
    print("*********************")

    change = input("请选择:").strip()
    print
    if change == "1":
        print("正在载入新游戏 ...")
        integral = 0
        run_game()
        print("您当前的得分是:{0}".format(integral))
    elif change == "2":
        print("正在载入 ...")
        run_game()
        print("您当前的得分是:{0}".format(integral))
    elif change == "3":
        break
    else:
        print("输入错误 ! 请重新输入 !")

print("游戏结束")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值