Python基础入门编程代码练习(六)

一、模拟房产经纪人来管理房屋信息

编写业务实现

家具类:HouseItem
属性:名字 name,占地面积 area
方法:__init__ , __str__

类名:房子类 House
属性:户型 name,总面积:total_area,剩余面积:free_area = total_area,家具名称列表:item_list = []
方法: __init__ , __str__ 方法
添加家具方法
 def add_item(self,item): #item 家具对象
     判断剩余房屋面积(剩余的总面积)是否大于或等于家具面积
     修改房子的剩余面积
     修改房子的家具列表(把家具.append()存入到房子的家具列表中)

实现代码如下:

class Item(object):

    # 1. 定义__init__方法,添加2个属性,需要2个形参 _type, _area
    def __init__(self, _type, _area):
        # 1.1 地址 address
        self.type = _type
        # 1.2 家具面积 area
        self.area = _area

    # 2. 实现__str__方法
    def __str__(self):
        # 2.1 返回房子地址、面积、剩余面积信息
        return f'家具类型为:{self.type}, 家具面积为:{self.area}'

class House(object):

    # 1. 定义__init__方法,添加3个属性,需要3个形参
    def __init__(self, _addr, _area, _free_area):
        # 1.1 地址 address
        self.address = _addr
        # 1.2 房子面积 area
        self.area = _area
        # 1.3 房子剩余面积 free_area,默认为房子的面积
        self.free_area = _free_area

    # 2. 实现__str__方法
    def __str__(self):
        # 2.1 返回房子地址、面积、剩余面积信息
        return f'房子地址:{self.address}, 房子面积:{self.area}, 房子剩余面积:{self.free_area}'

    # 3. 实现add_item方法,提供item参数来添加家具,item是家具对象
    def add_item(self, item):
        # 3.1 如果 房间的剩余面积 >= 家具的面积,可以容纳家具:
        if self.free_area > item.area:
            # 3.1.1 打印添加家具的类型和面积
            print(f'添加{item.type}成功了,家具占用面积为:{item.area}')
            # 3.1.2 剩余面积 减少
            self.free_area -= item.area

        # 3.2 否则 不能容纳家具:提示家具添加失败
        else:
            print('家具添加失败')

h = House('兴东地铁站', 70, 70)  # 创建房间对象h
print(h)  # 打印房子对象,获取House中__str__返回的信息

tv = Item('超大电视', 10)  # 创建家具1
print(tv)  # 打印家具对象,输出Item中__str__返回的信息
h.add_item(tv)  # 房子添加家具
print(h)  # 打印房子对象,获取House中__str__返回的信息

bed = Item('超大床', 20)  # 创建家具2
print(bed)  # 打印家具对象,输出Item中__str__返回的信息
h.add_item(bed)  # 房子添加家具
print(h)

运行结果:

 

二、定义一个 Dog 类

定义一个 Dog 类, 定义一个类属性 count,用来记录创建该类对象的个数. (即每创建一个对象,count 的值就要加1)实例属性 name

实现代码如下:

class Dog:

    count = 0
    def __init__(self, name):
        self.name = name  # 实例属性
        Dog.count += 1

print(Dog.count)

dog1 = Dog('小花')
print(Dog.count)

dog2 = Dog
dog3 = dog1
print(Dog.count)

dog4 = Dog('团团')
print(Dog.count)

print(dog1.count)
print(dog4.count)

运行结果:

 

三、定义一个游戏类

定义一个游戏类 Game , 包含实例属性 玩家名字(name)

  1. 要求记录游戏的最高分(top_score 类属性),
  2. 定义方法: show_help 显示游戏的帮助信息 输出这是游戏的帮助信息
  3. 定义方法: show_top_score, 打印输出游戏的最高分
  4. 定义方法: start_game, 开始游戏, 规则如下
    1. 使用随机数获取本次游戏得分 范围 (10 - 100 )之间
    2. 判断本次得分和最高分之间的关系
      • 如果本次得分比最高分高,
        • 修改最高分
      • 如果分数小于等于最高分,则不操作
    3. 输出本次游戏得分
  1. 主程序步骤
  2. # 1) 创建一个 Game 对象  小王
  3. # 2) 小王玩一次游戏,
  4. # 3) 查看历史最高分
  5. # 4) 小王再玩一次游戏
  6. # 5) 查看历史最高分
  7. # 6) 查看游戏的帮助信息

实现代码如下:

import random


class Game:
    top_score = 0

    def __init__(self, name):
        self.name = name

    def show_help(self):
        print('这是游戏的帮助信息')

    def show_top_score(self):
        print(f'游戏的最高分:{Game.top_score}')

    def start_game(self):
        print(f'{self.name} 开始一局游戏', end='')
        score = random.randint(10, 100)  # 本次游戏的得分
        print(f'本次游戏得分{score}')
        if score > Game.top_score:
            Game.top_score = score  # 修改最高分
        else:
            pass


xw = Game('小王')
xw.start_game()
xw.show_top_score()

xw.start_game()
xw.show_top_score()

运行结果:

 

四、领养电子宠物

  1. 实现领养电子宠物功能
    1. 编写宠物类Dog(狗类)和Penguin(企鹅类)
    2. 创建宠物对象,输入领养的宠物信息并输出

     

     

实现代码如下:

class Pet:
    def __init__(self, name,animal_type,varieties):
        self.__name = name
        self.__animal_type = animal_type
        self.__varieties = varieties

    def set_name(self,name):
        self.__name = name

    def set_animal_type(self,animal_type):
        self.__animal_type = animal_type

    def set_varieties(self,varieties):
        self.__varieties = varieties

    def get_name(self):
        return self.__name

    def get_varieties(self):
        return self.__varieties

    def get_animal_type(self):
        return self.__animal_type


def main():
    print('欢迎您来到宠物店! ')
    pet_name = input('请输入要领养宠物的名字: ')
    pet_type = int(input('请选择要领养宠物的类型:(1、狗狗 2、企鹅)'))
    if pet_type == 1:
        print('狗狗')
        pet_varieties = int(input('请选择狗狗的品种:(1、聪明的拉布拉多犬 2、酷酷的雪娜瑞)'))
        if pet_varieties ==1:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只聪明的拉布拉多犬')
        else:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只酷酷的雪娜瑞')
    else:
        print('企鹅')
        pet_varieties = int(input('请选择企鹅的性别:(1、Q仔 2、Q妹)'))
        if pet_varieties ==1:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q仔')
        else:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q妹')

main()

运行结果:

 

五、优化电子宠物系统

新建一个基类:Pet(宠物类),实现用DogPenguin继承Pet

  1. 优化电子宠物系统
    1. 打印宠物信息
    2. 使用继承实现Dog类和Penguin

实现代码如下:

class Pet:
    def __init__(self, name,animal_type,varieties):
        self.__name = name
        self.__animal_type = animal_type
        self.__varieties = varieties

    def set_name(self,name):
        self.__name = name

    def set_animal_type(self,animal_type):
        self.__animal_type = animal_type

    def set_varieties(self,varieties):
        self.__varieties = varieties

    def get_name(self):
        return self.__name

    def get_varieties(self):
        return self.__varieties

    def get_animal_tpe(self):
        return self.__animal_type


def main():
    pet_name = input('请输入要领养宠物的名字: ')
    pet_type = int(input('请选择要领养宠物的类型:(1、狗狗 2、企鹅)'))
    if pet_type == 1:
        print('狗狗')
        pet_varieties = int(input('请选择狗狗的品种:(1、聪明的拉布拉多犬 2、酷酷的雪娜瑞)'))
        if pet_varieties ==1:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只聪明的拉布拉多犬')
        else:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只酷酷的雪娜瑞')
    else:
        print('企鹅')
        pet_varieties = int(input('请选择企鹅的性别:(1、Q仔 2、Q妹)'))
        if pet_varieties ==1:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q仔')
        else:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q妹')

main()

运行结果:

 

六、使用多态实现主人给宠物喂食

  1. 使用多态实现喂养宠物功能
  2. 增加宠物猫并喂食,其健康值增加4(给猫喂食一次,健康值+4

实现代码如下:

class Pet:
    def __init__(self, name,animal_type,varieties):
        self.__name = name
        self.__animal_type = animal_type
        self.__varieties = varieties

    def set_name(self,name):
        self.__name = name

    def set_animal_type(self,animal_type):
        self.__animal_type = animal_type

    def set_varieties(self,varieties):
        self.__varieties = varieties

    def get_name(self):
        return self.__name

    def get_varieties(self):
        return self.__varieties

    def get_animal_type(self):
        return self.__animal_type




def main():
    print('欢迎您来到宠物店! ')
    pet_name = input('请输入要领养宠物的名字: ')
    pet_type = int(input('请选择要领养宠物的类型:(1、狗狗 2、企鹅 3、猫猫)'))
    if pet_type == 1:
        print('狗狗')
        pet_varieties = int(input('请选择狗狗的品种:(1、聪明的拉布拉多犬 2、酷酷的雪娜瑞)'))
        if pet_varieties ==1:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只聪明的拉布拉多犬')
        else:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只酷酷的雪娜瑞')
    elif pet_type == 2:

        print('企鹅')
        pet_varieties = int(input('请选择企鹅的性别:(1、Q仔 2、Q妹)'))
        if pet_varieties ==1:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q仔')
        else:

            pet_specs = Pet(pet_name, pet_type, pet_varieties)

            print('宠物的自白: ')
            print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q妹')

    else:
        print('猫猫')
        cat_varieties = int(input('请选择猫猫的性别:(1、公猫 2、母猫)'))
        cat_specs = Pet(pet_name, pet_type, cat_varieties)

        print('宠物的自白: ')
        print('我的名字叫 ', cat_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只菊花猫')

        test1 = str(input('是否给猫喂食?'))
        jkzhi = 100
        if test1 == '是':
            jkzhi =jkzhi+4
            print(jkzhi)
        else:
            print(jkzhi)

main()

运行结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/19039.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Word怎么分页,提高效率就靠这3种方法!

案例:Word怎么分页 【文档要进行分页处理,但是我尝试了好多次还是不行!大家知道Word怎么分页吗?】 在使用Microsoft Word处理文档时,我们常常需要进行分页操作。Word的分页功能可以将文档分成多个页面,以…

【Selenium上】——全栈开发——如桃花来

目录索引 Selenium是什么:下载和配置环境变量:1. 基本使用:导入五个常用包:基本代码: 实例引入:声明不同浏览器对象:访问页面: Selenium是什么: Selenium是一个用于Web应…

怎么把pdf中的某一页分出来?

怎么把pdf中的某一页分出来?PDF格式的文档在日常生活中是非常常见的,相信大家都对其有所了解,并且经常使用。它的主要特点是不允许用户随意编辑其中的内容,当我们仅需要阅读时,PDF文档无疑是十分方便的,尤其…

Python爬虫解读

爬虫: Python爬虫是指利用计算机程序或者脚本自动抓取网站数据的一种行为,通常是为了提取网站数据或者进行数据分析等目的。 Python 爬虫可以分为手动爬虫和自动爬虫两种。手动爬虫是指完全由人工编写代码来实现的爬虫,这种方式需要编写大量的…

NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 转载自内网穿透工具的文章:使用Nextcl…

Selenium自动化测试中的PageObject模式

PageObject模式简介 众所周知,UI页面元素常常是不稳定的,在使用Selenium编写WebUI自动化测试用例时,随着测试脚本的增加,维护和更新这些元素便成为一个令人头疼的问题。 在普通模式下,脚本直接定位并操作元素&#xf…

进程(一)

进程(一) 2.1 进程的定义、组成、组织方式、特征2.1.1 定义2.1.2 组成2.1.3 组织方式2.1.4 特征2.1.5 本小节总结 2.2 进程的状态与转换2.2.1 进程的状态2.2.3 进程状态的转换2.2.4 本小节总结 2.3 进程控制2.3.1 基本概念2.3.2 进程控制相关的原语2.3.3…

【Java零基础入门篇】第 ⑤ 期 - 抽象类和接口(二)

博主:命运之光 专栏:Java零基础入门 学习目标 1.了解什么是抽象类,什么是接口; 2.掌握抽象类和接口的定义方法; 3.理解接口和抽象类的使用场景; 4.掌握多态的含义和用法; 5.掌握内部类的定义方法…

vue学习

{{}} 插值语法,应用vue实例容器中,获取标签值 v-bind v-bind:单向绑定,实例对象key的对应的值,绑定到vue实例容器标签的属性中 简写:: v-model v-model:双向绑定 注意:v-model只能应用于‘表单…

MathType7简体中文版数学公式编辑器下载安装教程

MathType一款专业的数学公式编辑器,理科生专用的必备工具,可应用于教育教学、科研机构、工程学、论文写作、期刊排版、编辑理科试卷等领域。2018年2月,MathType 7简体中文版正式发布,给用户带来全新的体验。MathType 是Windows和M…

jenkins,gitlab,实时构建推送

首先jdk,jenkins安装好,新版jenkins不支持jdk8 然后安装环境maven,git 环境配置 插件安装 gitlab插件 Build Authorization Token Root插件 插件环境整好之后新建个任务 源码管理,填入仓库https地址,添加git…

shell函数

目录 一、shell函数 1.函数的作用 2.函数的优点 二、shell函数的格式 2.1函数返回值return 2.2函数变量 三、函数传参 四、递归函数 4.1查找输入目录下文件及其子目录下文件 4.2将IP地址转换为二进制 五、函数数据库 一、shell函数 1.函数的作用 把程序里需要多次…

C++Primer第20章 iostream库

第20章 iostream库 C中的IO流是通过多继承和虚拟继承实现的,下面是它的关系. 我们要学习的就是三个库,这里我会把重点的拿出来 iostream: 终端操作fstream:文件操作sstream:格式化操作 20.1 输出操作符<< 输出操作符可以接受任何内置数据类型的实参,包含我们的const …

怎么搭建个人小型渲染农场?搭建渲染农场配置

渲染农场是众多机器组成的渲染集群&#xff0c;通常用来渲染你的单帧效果图或动画项目&#xff0c;我们借助渲染农场的力量&#xff0c;可以满足3D项目交期时间迫在眉睫的需求&#xff0c;当你试着在自己的机器上渲染一个复杂的动画项目时&#xff0c;可能需要几十小时的等待时…

车载软件架构——闲聊几句AUTOSAR BSW(四)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 我们并不必要为了和谐,而时刻保持通情达理;我们需要具备的是,偶尔有肚量欣然承认在某些方面我们可能会有些不可理喻。该有主见的时候能掷地有声地镇得住场…

大数据赛项|2023年广东省大学生计算机设计大赛初赛结果公示

2023年广东省大学生计算机设计大赛 暨第16届中国大学生计算机设计大赛 粤港澳大湾区赛初赛结果公示 根据《广东省教育厅关于做好2023年广东省本科高校大学生学科竞赛工作的通知》&#xff0c;广东外语外贸大学承办2023年“广东省大学生计算机设计大赛”。 在广大师生的热情…

达摩院开源多模态对话大模型mPLUG-Owl

miniGPT-4的热度至今未减&#xff0c;距离LLaVA的推出也不到半个月&#xff0c;而新的看图聊天模型已经问世了。今天要介绍的模型是一款类似于miniGPT-4和LLaVA的多模态对话生成模型&#xff0c;它的名字叫mPLUG-Owl。 论文链接&#xff1a;https://arxiv.org/abs/2304.14178…

实时操作系统内存管理-TLSF算法

内存管理-TLSF算法 前言TLSF算法&#xff1a;为什么内存又叫内存“块”&#xff1a;O(1)查找空闲块&#xff1a;确定fl&#xff1a;确定sl&#xff1a;提级申请&#xff1a;分割块&#xff1a; 空闲块如何串成链表&#xff1f;减少外部碎片&#xff1a;查找上下块&#xff1a; …

OpenGL 4.0的Tessellation Shader(细分曲面着色器)

细分曲面着色器&#xff08;Tessellation Shader&#xff09;处于顶点着色器阶段的下一个阶段&#xff0c;我们可以看以下链接的OpenGL渲染流水线的图&#xff1a;Rendering Pipeline Overview。它是由ATI在2001年率先设计出来的。 目录 细分曲面着色器细分曲面Patch细分曲面控…

Node.js对ES6 及更高版本的支持

目录 1、简介 2、默认情况下什么特性随着 Node.js 一起发布&#xff1f; 3、有哪些特性在开发中&#xff1f; 4、移除这个标记&#xff08;--harmony&#xff09;吗 5、Node.js 对应 V8 引擎 1、简介 Node.js 是针对 V8 引擎构建的。通过与此引擎的最新版本保持同步&…