【Python编程-从入门到实践】练习题9-6 冰淇淋小店 9-7管理员 9-8权限 9-9电瓶升级

本文主要是介绍【Python编程-从入门到实践】练习题9-6 冰淇淋小店 9-7管理员 9-8权限 9-9电瓶升级,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

9-6 冰淇淋小店
class Restaurant():"""关于餐馆的一切信息"""def __init__(self, restaurant_name, cuisine_type):"""初始化餐厅信息"""self.restaurant_name = restaurant_nameself.cuisine_type = cuisine_typeself.number_served = 0def describe_restaurant(self):"""描述餐厅信息"""print("餐厅的名字叫:" + self.restaurant_name)def open_restaurant(self):"""指出餐厅是否开业"""print("餐厅正在营业。")def set_number_served(self, set_number_served):"""设置就餐人数"""self.number_served = set_number_servedprint("就餐人数为:" + str(self.number_served))def increment_number_served(self, increment_number_served):"""就餐人数递增"""self.number_served += increment_number_servedprint(self.number_served)class IceCreamStand(Restaurant):"""父类Restaurant的子类"""def __init__(self, restaurant_name, cuisine_type):"""初始化子类的方法"""super().__init__(restaurant_name, cuisine_type)self.flavors = []               #创建一个用于存储列表的属性def show_ice(self, *ice_s):         #设一个列表形参"""显示冰淇淋"""self.flavors = ice_s            #把形参赋值给属性print("冰淇淋有:")for i in self.flavors:          #打印列表print("- " + i.title())ice_cream_stand = IceCreamStand('人间美味', '中餐厅')       #创建实例ice_cream_stand.show_ice('冰1','冰2','冰3')        #传递任意数量的参数'''
必须创建实例,才能调用子类的方法。就是说白了,你如果没有创建一个名为‘人间美味’的
‘中餐厅’,你就没办法去调用子类的方法,所以很多人在创建实例ice_cream_stand,忘记
传参创建实例,导致报错(缺少两个参数)
'''

运行结果:
在这里插入图片描述

9-7 管理员
class User():"""关于用户的一切"""def __init__(self, first_name, last_name):"""初始化用户信息"""self.fi_name = first_nameself.la_name = last_namelogin_attempts = 0def describe_user(self):"""打印用户信息"""print(self.fi + self.la)def greet_user(self):"""向用户问好"""print("你好," + self.fi + self.la)def increment_login_attempts(self):"""试图登录的用户"""login_attempts = 1print("现在正在试图登录的用户有:" + str(login_attempts) + "个.")def reset_login_attempts(self):"""试图登录的用户数"""login_attempts = 0print("现在正在试图登录的用户有:" + str(login_attempts) + "个.")class Admin(User):"""继承User"""def __init__(self, first_name, last_name):"""初始化子类的属性"""super().__init__(first_name, last_name)self.privileges = ['can add post', 'can delete post', 'can ban user']def show_privileges(self):"""显示超级管理员的权限"""print("超级管理员的权限有:")for admin_privilege in self.privileges:print("- " + admin_privilege)a_admin = Admin('guai', 'guai')a_admin.show_privileges()

运行结果:
在这里插入图片描述

9-8 权限
class User():"""关于用户的一切"""def __init__(self, first_name, last_name):"""初始化用户信息"""self.fi_name = first_nameself.la_name = last_namelogin_attempts = 0def describe_user(self):"""打印用户信息"""print(self.fi + self.la)def greet_user(self):"""向用户问好"""print("你好," + self.fi + self.la)def increment_login_attempts(self):"""试图登录的用户"""login_attempts = 1print("现在正在试图登录的用户有:" + str(login_attempts) + "个.")def reset_login_attempts(self):"""试图登录的用户数"""login_attempts = 0print("现在正在试图登录的用户有:" + str(login_attempts) + "个.")class Privileges():"""管理权限的类"""def __init__(self, privileges=[]):"""初始化属性"""self.privileges = ['can add post', 'can delete post', 'can ban user']def show_privileges(self):"""显示超级管理员的权限"""print("超级管理员的权限有:")for admin_privilege in self.privileges:print("- " + admin_privilege)        class Admin(User):"""继承User"""def __init__(self, first_name, last_name):"""初始化子类的属性"""super().__init__(first_name, last_name)#在调用Privileges时,如果需要参数,就应该给参数self.privileges = Privileges()a_admin_2 = Admin('xiao', 'guai')a_admin_2.privileges.show_privileges()

注意点(看如下两图):
在这里插入图片描述在这里插入图片描述

9-9 电瓶升级
class Car():"""关于汽车的一切信息"""def __init__(self, make, model, year):"""初始化汽车信息"""self.make = makeself.model = modelself.year = yearself.odometer_reading = 0def get_descriptive_name(self):"""描述用户信息"""long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()def read_odometer(self):"""读取公里数"""print("This car has " + str(self.ofometer_reading) +"miles on it.")def update_odometer(self, mileage):"""增加公里数"""if mileage >= self.odometer_reading:self.odometer_reading = mileageelse:print("You can't roll back an odometer!")def incremet_odometer(self, miles):"""增长的公里数"""self.odometer_reading += miles#将实例用作属性:将类中的一部分独立出来成为一个小类,方便管理使用
class Battery():"""一次模拟电动汽车电瓶的简单尝试"""def __init__(self, battery_size=70):"""初始化电瓶的属性"""self.battery_size = battery_sizedef describe_battery(self):"""打印一条描述电瓶容量的消息"""print("This car has a " + str(self.battery_size) + "-kwh battery")def get_range(self):"""打印一条消息,指出电瓶的续航里程"""if self.battery_size == 70:range = 240elif self.battery_size == 85:range = 270message = "This car can go approximately " + str(range)message += " miles on a full charge."print(message)def upgrade_battery(self):"""检查电瓶容量"""if self.battery_size != 85:self.battery_size = 85class ElectricCar(Car):"""特殊的电动汽车"""def __init__(self, make, model, year):"""初始化电动汽车属性电动汽车自己特殊的方法和属性"""super().__init__(make, model, year)     #继承self.battery_a = Battery()                #将实例用作属性def describe_battery(self):"""打印一条描述电瓶容量的消息"""print("This car has a " + str(self.battery_size) + "-Kwh battery.")def fill_gas_tank(self):                #重写父类的方法"""电动汽车没有汽油"""print("This car doesn't need a gas tank!")    a_new_tesla = ElectricCar('tesla', 'model s', 2021)a_new_tesla.battery_a.describe_battery()    a_new_tesla.battery_a.get_range()           #调用方法查看续航里程a_new_tesla.battery_a.upgrade_battery()     #调用方法升级了电瓶容量a_new_tesla.battery_a.get_range()           #再次调用方法查看续航里程

运行结果:
在这里插入图片描述

这篇关于【Python编程-从入门到实践】练习题9-6 冰淇淋小店 9-7管理员 9-8权限 9-9电瓶升级的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/174644

相关文章

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息