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

news2024/11/19 3:26:51

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

编写业务实现

家具类: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()

运行结果:

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么编程都建议不要用拼音命名

一、场景 我们看看知乎答主举的搞笑例子,一句话全部都是shi,表达起来确实困难。 二、原因 上面这个回答,一句话全部都是“shi”,表达起来确实困难。并且让人误解 那么编程都建议不要用拼音命名,主要有以下原因&…

数据结构_栈、队列和数组

目录 1. 栈 1.1 栈的定义 1.2 栈的基本操作 1.3 栈的顺序存储结构 1.3.1 顺序栈 1.3.2 顺序栈的基本运算 1.3.3 共享栈 1.4 栈的链式存储 1.5 栈相关应用 2. 队列 2.1 队列的定义 2.2 队列的基本操作 2.3 队列的顺序存储 2.4 循环队列 2.4.1 循环队列的操作 2.…

2023年全国职业院校技能大赛-大数据应用开发-数据可视化

可视化题目与以往相同,做法类似,我这里展示得到语句后处理优化以后的代码,以函数式来写可视化,比以前400-500多行代码简洁到100多行。其他题目见本栏目,那里面的代码都是没有优化后的,这次主要以效率和精简…

提升曝光率!掌握Facebook帖子关键词采集技巧

如何提高Facebook帖子的曝光率成为了每个营销人员的关注焦点。掌握Facebook帖子关键词采集技巧,可以帮助你更好地定位受众,增加帖子的曝光和点击率。在本文中,我们将详细介绍一些有效的技巧和策略,让你成为Facebook帖子关键词的专…

不到1分钟,帮你剪完旅行vlog,火山引擎全新 AI「神器」真的这么绝?

旅行时,想在社交平台发布一支精美的旅行 vlog,拍摄剪辑需要花费多长时间? 20 分钟?一小时?半天? 在火山引擎算法工程师眼里,可能 1 分钟都用不了,因为会有 AI 替你完成。 没错&#…

安装-唯一客服系统文档中心

环境要求 Mysql > 5.6IIS/Apache/Nginx(只推荐nginx) 宝塔一键部署 前往 【软件商店】>【一键部署】>【导入项目】 客服项目本身不需要PHP环境,因此PHP版本那里,随意根据自己环境写上就可以 导入完成以后,点击一键部署,填…

matlab实验四插值与数据拟合

一、实验目的及要求 一、实验的目的与要求: 1、掌握 MATLAB的一维数据插值法 2、通过比较不同次数的多项式拟合效果,了解多项式拟合的原理 3、掌握 MATLAB的多项式拟合的特点和方法 4、掌握 MATLAB的多项式表示与运算 二、实验原理 1、Matlab中&#xff…

基于QEMU的RISC-V架构linux系统开发(一)——RISC-V交叉编译器的安装

基于RISC-V交叉编译器包括32bit和64bit两种类型,其中每种类型又包括裸机版本(newlib)和动态链接库版本(linux glibc)。不同类型、版本的gcc的安装仅在配置文件上存在差异,具体安装流程(以64bit …

以数据思维和技能提升数据应用测试实践 | 京东云技术团队

作者:京东零售 周雪梅 以数据思维和技能提高测试覆盖率和效率。数据应用测试,功能测试主要聚焦在数据流向(输入和输出)。 一、背景 数据质量组当前主要承接黄金眼和商智中的供应链模块,商智包括PC(品牌版…

Access、Foxpro、Foxbase,2023年找到完美代替,有Excel基础即可

你还记得上世纪80年代的Foxbase和Foxpro吗? 数据库软件作为基础软件是计算机系统稳定运行的基石。 像Foxbase和Foxpro,很多计算机专业的前辈都应该听说过,当时的风靡程度一点也不亚于现在的微软office。 FoxPro和Foxbase是诞生于1984年。具…

玩机搞机-----安卓全机型 ADB FAST 各种指令解析说明与操作【二】基础联机

安卓全机型 玩机 搞机 ADB FAST 各种指令解析说明与操作_adb线刷命令_安卓机器的博客-CSDN博客 今天对上个帖子不足的地方进行补正。方便友友进行基础的联机操作,很多时候我们用adb指令的时候会有各种奇奇怪怪的问题。例如同一个机型,同一个指令。有时候…

使用svg在元素直接绘制连线箭头

注意&#xff1a;svg的图形绘制的点位置坐标是基于画布的位置坐标&#xff0c;相当于从左上角的点为起点。 先来个简单示例&#xff1a; 在点与点之间绘制连线箭头 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

cookie、session、token的区别是什么

前言 今天就来说说session、cookie、token这三者之间的关系&#xff01;最近这仨玩意搞得头有点大&#x1f923; 1.为什么会有它们三个&#xff1f; 我们都知道 HTTP 协议是无状态的&#xff0c;所谓的无状态就是客户端每次想要与服务端通信&#xff0c;都必须重新与服务端链接…

JUC并发编程18 | AQS分析

尚硅谷&#xff08;140-155&#xff09; 18 AQS 前置知识 公平锁和非公平锁可重入锁自旋思想LockSupport双向链表设计模式——模块设计 18.1 AQS入门级别理论知识 AQS一般指的是 AbstractQueuedSynchronized AQS 是用来实现锁或者其他同步器组件的公共基础部分的抽象实现…

【企业信息化】第3集 世界排名第一的免费开源ERP: Odoo 16 POS终端管理系统

文章目录 前言一、概览二、硬件三、使用功能 前言 世界排名第一的免费开源ERP: Odoo 16 POS终端管理系统。几分钟内完成设置&#xff0c;几秒内完成销售。 一、概览 Odoo POS 基于智能界面&#xff0c;任何零售公司均可毫不费力地使用 因为其极具灵活性&#xff0c;您可配置 …

普通的项目非分布式项目中的技术点思考(学习随记)

学习路线 在学习Java的路程中&#xff0c;最开始学习JavaSe&#xff0c;在Java基础学完后&#xff0c;开始接触JavaWeb&#xff0c;开始接触框架&#xff0c;Spring框架&#xff0c;SpringBoot框架、数据库框架、在学习一下中间件&#xff0c;就可以完成工作中crud的基础操作&…

聚观早报|谷歌:全新大模型赋能「全家桶」;阿里巴巴取消CTO职位

今日要闻&#xff1a;谷歌 I/O&#xff1a;全新大模型赋能「全家桶」&#xff1b;阿里巴巴取消CTO职位&#xff1b;马斯克打造「美国微信」&#xff1b;奔驰将召回部分进口CLA汽车&#xff1b;奔驰将召回部分进口CLA汽车 谷歌 I/O&#xff1a;全新大模型赋能「全家桶」 北京时…

大模型也内卷,Vicuna训练及推理指南,效果碾压斯坦福羊驼

2023开年以来&#xff0c;大模型进入疯狂内卷状态&#xff0c;大模型的发布都要以“天”为单位进行迭代。 之前&#xff0c;尝试了从0到1复现斯坦福羊驼&#xff08;Stanford Alpaca 7B&#xff09; &#xff0c;下面我们来尝试从0到1复现Vicuna训练及推理。 Vicuna简介 继斯坦…

AOP深度学习

代理模式 静态代理&#xff1a;静态代理确实实现了解耦&#xff0c;但是由于代码都写死了&#xff0c;完全不具备任何的灵活性。就拿日志功能来说&#xff0c;将来其他地方也需要附加日志&#xff0c;那还得再声明更多个静态代理类&#xff0c;那就产生了大量重复的代码&#…

wps js宏编辑器案例2-单元格读写-随机选人

本案例讲述某企业的一个真实案例&#xff0c;该企业每周二早上有安全宣贯会议&#xff0c;差不多10来分钟左右&#xff0c;每次安全会上人事部门都会点名&#xff0c;那么问题来了&#xff0c;点名的名单哪儿来&#xff1f;为此&#xff0c;编写了一个简单js宏应用&#xff0c;…