#练习 9-1:
# class Restaurant:
# """一次模拟餐馆的简单尝试"""
# def __init__(self,restaurant_name,cuisine_tpye):
# """初始化餐馆的基础属性"""
# self.restaurant_name = restaurant_name
# self.cuisine_tpye = cuisine_tpye
# def describe_restaurant(self):
# """描述餐馆"""
# print(f'This restaurant name is {self.restaurant_name}',end=' ')
# print(f"and its chef's special is {self.cuisine_tpye}.")
# def open_restaurant(self):
# """指出餐馆正在营业"""
# print(f'{self.restaurant_name} is open')
# my_restaurant = Restaurant('KFC','Original_Chicken')
# my_restaurant.describe_restaurant()
# my_restaurant.open_restaurant()
#练习 9-2:
# class Restaurant:
# """一次模拟餐馆的简单尝试"""
# def __init__(self,restaurant_name,cuisine_tpye):
# """初始化餐馆的基础属性"""
# self.restaurant_name = restaurant_name
# self.cuisine_tpye = cuisine_tpye
# def describe_restaurant(self):
# """描述餐馆"""
# print(f'This restaurant name is {self.restaurant_name}',end=' ')
# print(f"and its chef's special is {self.cuisine_tpye}.")
# def open_restaurant(self):
# """指出餐馆正在营业"""
# print(f'{self.restaurant_name} is open')
# restaurant_1 = Restaurant('KFC','Original Chicken')
# restaurant_1.describe_restaurant()
# restaurant_2 = Restaurant('Burger King','Cheese burger')
# restaurant_2.describe_restaurant()
# restaurant_3 = Restaurant("McDonald's",'Big Mac Burger')
# restaurant_3.describe_restaurant()
#练习 9-3:
# class User:
# def __init__(self,first_name,last_name):
# self.first_name = first_name
# self.last_name = last_name
# def describe_user(self):
# full_name = f'{self.last_name} {self.first_name}'
# print(f'user name is {full_name.title()}')
# def greet_user(self):
# full_name = f'{self.last_name} {self.first_name}'
# print(f"Good moring,dear {full_name.title()}")
# user_1 = User('Steve','Jobs')
# user_1.describe_user()
# user_1.greet_user()
#练习 9-4:
# class Restaurant:
# """一次模拟餐馆的简单尝试"""
# def __init__(self,restaurant_name,cuisine_tpye):
# """初始化餐馆的基础属性"""
# self.restaurant_name = restaurant_name
# self.cuisine_tpye = cuisine_tpye
# self.number_served = 0
# def describe_restaurant(self):
# """描述餐馆"""
# print(f'This restaurant name is {self.restaurant_name}',end=' ')
# print(f"and its chef's special is {self.cuisine_tpye}.")
# def open_restaurant(self):
# """指出餐馆正在营业"""
# print(f'{self.restaurant_name} is open')
# def read_number_served(self):
# """打印一条餐馆至今服务过多少人的消息"""
# print(f"Our restaurant has served {self.number_served} people.")
# def set_number_served(self,number):
# """可任意设置已服务人数"""
# if number >= self.number_served:
# #禁止对已服务人数进行回调
# self.number_served = number
# else:
# print('You can not roll back an number')
# def increment_number_served(self,add_number):
# """可更新已服务人数"""
# self.number_served += add_number
# my_restaurant = Restaurant('KFC','Original_Chicken')
# my_restaurant.read_number_served()
# my_restaurant.number_served = 1
# my_restaurant.read_number_served()
# my_restaurant.set_number_served(50_000)
# my_restaurant.read_number_served()
# my_restaurant.increment_number_served(500)
# my_restaurant.read_number_served()
#练习 9-5:
# class User:
# def __init__(self,first_name,last_name):
# self.first_name = first_name
# self.last_name = last_name
# self.login_attempts = 0
# def describe_user(self):
# """打印用户的姓名"""
# full_name = f'{self.last_name} {self.first_name}'
# print(f'user name is {full_name.title()}')
# def greet_user(self):
# """向用户道早上好"""
# full_name = f'{self.last_name} {self.first_name}'
# print(f"Good moring,dear {full_name.title()}")
# def increment_login_attempts(self):
# """尝试登录次数加1"""
# self.login_attempts += 1
# def reset_login_attempts(self):
# """将尝试登录次数重置为0"""
# self.login_attempts = 0
# def read_login_attempts(self):
# """打印出用户的尝试登录次数"""
# print(f"Your login attempts have reached {self.login_attempts} times")
# user_1 = User('Steve','Jobs')
# user_1.increment_login_attempts()
# user_1.increment_login_attempts()
# user_1.increment_login_attempts()
# user_1.increment_login_attempts()
# user_1.increment_login_attempts()
# user_1.read_login_attempts()
# user_1.reset_login_attempts()
# user_1.read_login_attempts()
#练习 9-6:
# class Restaurant:
# """一次模拟餐馆的简单尝试"""
# def __init__(self,restaurant_name,cuisine_tpye):
# """初始化餐馆的基础属性"""
# self.restaurant_name = restaurant_name
# self.cuisine_tpye = cuisine_tpye
# self.number_served = 0
# def describe_restaurant(self):
# """描述餐馆"""
# message = f'This restaurant name is {self.restaurant_name} '
# message += f"and its chef's special is {self.cuisine_tpye}."
# print(message)
# def open_restaurant(self):
# """指出餐馆正在营业"""
# print(f'{self.restaurant_name} is open')
# def read_number_served(self):
# """打印一条餐馆至今服务过多少人的消息"""
# print(f"Our restaurant has served {self.number_served} people.")
# def set_number_served(self,number):
# """可任意设置已服务人数"""
# if number >= self.number_served:
# #禁止对已服务人数进行回调
# self.number_served = number
# else:
# print('You can not roll back an number')
# def increment_number_served(self,add_number):
# """可更新已服务人数"""
# self.number_served += add_number
# class IceCreamStand(Restaurant):
# def __init__(self,restaurant_name,cuisine_tpye):
# """
# 初始化餐馆的信息
# 再初始化冰淇淋店特有的属性
# """
# super().__init__(restaurant_name,cuisine_tpye)
# self.flavors = ['coco IceCream','water IceCream','fire IceCream']
# def describe_flavors(self):
# """显示各种口味的冰淇淋组成的列表"""
# message = "our Ice-cream shop has these "
# message += f"{self.flavors} for you to choose"
# print(message)
# icecream = IceCreamStand('HAPPYNESS SHOP','ICECEAM')
# icecream.describe_flavors()
#练习 9-7:
# class User:
# def __init__(self,first_name,last_name):
# self.first_name = first_name
# self.last_name = last_name
# self.login_attempts = 0
# def describe_user(self):
# """打印用户的姓名"""
# full_name = f'{self.last_name} {self.first_name}'
# print(f'user name is {full_name.title()}')
# def greet_user(self):
# """向用户道早上好"""
# full_name = f'{self.last_name} {self.first_name}'
# print(f"Good moring,dear {full_name.title()}")
# def increment_login_attempts(self):
# """尝试登录次数加1"""
# self.login_attempts += 1
# def reset_login_attempts(self):
# """将尝试登录次数重置为0"""
# self.login_attempts = 0
# def read_login_attempts(self):
# """打印出用户的尝试登录次数"""
# print(f"Your login attempts have reached {self.login_attempts} times")
# class Admin(User):
# def __init__(self,first_name,last_name):
# """
# 初始化User的信息
# 再初始化Admin特有的属性
# """
# super().__init__(first_name,last_name)
# self.privileges = ['can add post','can delete post','can ban user']
# def show_privileges(self):
# """显示管理员的权限"""
# new_privileges = (','.join(self.privileges))
# print(f"The admin has the following permissions:{new_privileges}.")
# my_Admin = Admin('Steve','Jobs')
# my_Admin.show_privileges()
#练习 9-8:
# class User:
# def __init__(self,first_name,last_name):
# self.first_name = first_name
# self.last_name = last_name
# self.login_attempts = 0
# def describe_user(self):
# """打印用户的姓名"""
# full_name = f'{self.last_name} {self.first_name}'
# print(f'{full_name.title()}')
# def greet_user(self):
# """向用户道早上好"""
# full_name = f'{self.last_name} {self.first_name}'
# print(f"Good moring,dear {full_name.title()}")
# def increment_login_attempts(self):
# """尝试登录次数加1"""
# self.login_attempts += 1
# def reset_login_attempts(self):
# """将尝试登录次数重置为0"""
# self.login_attempts = 0
# def read_login_attempts(self):
# """打印出用户的尝试登录次数"""
# print(f"Your login attempts have reached {self.login_attempts} times")
# class Privileges:
# """一次模拟管理员权限的尝试"""
# def __init__(self,privileges = ['can add post','can delete post','can ban user']):
# """初始化权限的属性"""
# self.privileges = privileges
# def show_privileges(self):
# """显示管理员的权限"""
# new_privileges = (','.join(self.privileges))
# print(f"The admin has the following permissions:{new_privileges}.")
# class Admin(User):
# def __init__(self,first_name,last_name):
# """
# 初始化User的信息
# 再初始化Admin特有的属性
# """
# super().__init__(first_name,last_name)
# self.privileges = Privileges()
# m_Admin = Admin('Steve','Jobs')
# m_Admin.describe_user()
# m_Admin.privileges.show_privileges()
#练习 9-9:
# class Car():
# """一次模拟汽车的简单尝试。"""
# def __init__(self, manufacturer, model, year):
# """初始化描述汽车的属性。"""
# self.manufacturer = manufacturer
# self.model = model
# self.year = year
# self.odometer_reading = 0
# def get_descriptive_name(self):
# """返回整洁的描述性信息。"""
# long_name = f"{self.year} {self.manufacturer} {self.model}"
# return long_name.title()
# def read_odometer(self):
# """打印一条指出汽车里程的消息。"""
# print(f"This car has {self.odometer_reading} miles on it.")
# def update_odometer(self, mileage):
# """
# 将里程表读数设置为指定的值。
# 禁止将里程表读数往回调。
# """
# if mileage >= self.odometer_reading:
# self.odometer_reading = mileage
# else:
# print("You can't roll back an odometer!")
# def increment_odometer(self, miles):
# """将里程表读数增加指定的量。"""
# self.odometer_reading += miles
# class Battery():
# """一次模拟电动汽车电瓶的简单尝试。"""
# def __init__(self, battery_size=75):
# """初始化电瓶的属性。"""
# self.battery_size = battery_size
# def describe_battery(self):
# """打印一条描述电瓶容量的消息。"""
# print(f"This car has a {self.battery_size}-kWh battery.")
# def get_range(self):
# """打印一条消息,指出电瓶的续航里程。"""
# if self.battery_size == 75:
# range = 260
# elif self.battery_size == 100:
# range = 315
# message = f"This car can go approximately {range}"
# message += " miles on a full charge."
# print(message)
# def upgrade_battery(self):
# """在可能的情况下将电瓶升级。"""
# if self.battery_size == 75:
# self.battery_size = 100
# print("Upgraded the battery to 100 kWh.")
# else:
# print("The battery is already upgraded.")
# class ElectricCar(Car):
# """电动汽车的独特之处。"""
# def __init__(self, manufacturer, model, year):
# """
# 初始化父类的属性。
# 再初始化电动汽车特有的属性。
# """
# super().__init__(manufacturer, model, year)
# self.battery = Battery()
# my_ElectricCar = ElectricCar('tesla', "model s", 2019)
# print(my_ElectricCar.get_descriptive_name())
# my_ElectricCar.battery.get_range()
# my_ElectricCar.battery.upgrade_battery()
# my_ElectricCar.battery.get_range()
#练习 9-10:
# 我将Restaurant类储存进了 restaurant.py 模块
#接下里便是对一个模块中的一个类进行调用
# from restaurant import Restaurant
# my_restaurant = Restaurant('HAPPYNESS SHOP','ICECEAM')
# my_restaurant.open_restaurant()
#练习 9-11:
#将User类、Admin类、Privileges类储存进 user.py 模块
#接下里便是对一个模块中的多个类进行调用
# from user import Admin
# my_Admin = Admin('Steve','Jobs')
# my_Admin.privileges.show_privileges()
#练习 9-12:
#在一个模块导入另一个模块
# from my_user import User
# #用于调用正常的user
# from my_admin import Admin
# #my_admin模块内只有Admin类和Privileges类
# #因此需要导入my_user模块的User类
# #my_admin模块中的类才能正常使用
# my_User = User('mark','jobs')
# my_User.describe_user()
# MY_Admin = Admin('Steve','Jobs')
# MY_Admin.describe_user()
# MY_Admin.privileges.show_privileges()
#练习 9-13:
# from random import randint
# class Die:
# def __init__(self,sides=6):
# """初始化sides默认属性"""
# """选择骰子面数,默认值为6"""
# self.sides = sides
# def roll_die(self,times):
# """打印位于1和骰子面数之间的随机数"""
# """选择投掷次数"""
# for time in range(times):
# print(randint(1,self.sides))
# my_die = Die()
# my_die.roll_die(10)
# #6面的骰子投掷10次
# my_die = Die(10)
# my_die.roll_die(10)
# #10面的骰子投掷10次
# my_die = Die(20)
# my_die.roll_die(10)
# #20面的骰子投掷10次
#练习 9-14:
# from random import choice
# list_1 = ['1','2','3','4','5','6','7','8','9','10','a','b','c','d','e']
# list_2 =[]
# def Lottery(m=4):
# for i in range(m):
# z = choice(list_1)
# list_2.append(z)
# list_3 = (''.join(list_2))
# return list_3
# ticket_num = Lottery()
# print(f"you will got the prize if your ticket number is {ticket_num}")
#练习 9-15:
# from random import choice
# possibilities = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e']
# class Lottery:
# def __init__(self,times=10000):
# """初始化投注次数,默认值为一万"""
# self.times = times
# def get_win_lottery(self,side=4):
# """用于生成获奖彩票"""
# """并选择几位数的彩票,默认值为4"""
# winning_list = []
# while len(winning_list) < side:
# n = choice(possibilities)
# if n not in winning_list:
# #排除重复元素
# winning_list.append(n)
# return winning_list
# def get_new_lottery(self,side=4):
# """用于随机生成彩票"""
# ticket = []
# while len(ticket) < side:
# n = choice(possibilities)
# if n not in ticket:
# #排除重复元素
# ticket.append(n)
# return ticket
# def times_lottery(self):
# """用于获得投注所获彩票列表"""
# lottery_list = []
# for x in range(self.times):
# lottery_list.append(Lottery.get_new_lottery(self))
# return lottery_list
# def check_lottery(self):
# """用于查看需要多少次才能中奖"""
# count = 0
# for x in Lottery.times_lottery(self):
# if x != Lottery.get_win_lottery(self):
# count +=1
# else:
# break
# return count
# a = Lottery(100000)
# print(f"此次中奖彩票号码是{(''.join(a.get_win_lottery()))}")
# a.times_lottery()
# print(f'第{a.check_lottery()}张中奖')
#练习 9-16:
# keep going on despite the obstacles and long
第9章--类
最新推荐文章于 2024-07-26 17:36:26 发布