【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

相关文章

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os