Chapter 9
9-1 餐馆
class Restaurant :
def __init__ (self, restaurant_name, cuisine_type) :
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
def describe_restaurant (self) :
print("Restaurant name:\t" + self.restaurant_name)
print("Cuisine type:\t" + self.cuisine_type)
def open_restaurant (self) :
print(self.restaurant_name.title() + " restaurant is open." )
restaurant = Restaurant("Jigongbao" , "Chuan Cai" )
print(restaurant.restaurant_name)
print(restaurant.cuisine_type)
restaurant.describe_restaurant()
restaurant.open_restaurant()
9-2 三家餐馆
class Restaurant :
def __init__ (self, restaurant_name, cuisine_type) :
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
def describe_restaurant (self) :
print("Restaurant name:\t" + self.restaurant_name)
print("Cuisine type:\t" + self.cuisine_type)
def open_restaurant (self) :
print(self.restaurant_name.title() + " restaurant is open." )
restaurant1 = Restaurant("Jigonggao" , "Chuancai" )
restaurant2 = Restaurant("Dapaidang" , "Shaokao" )
restaurant3 = Restaurant("Xiangcaiguan" , "Xiangcai" )
restaurant1.describe_restaurant()
restaurant2.describe_restaurant()
restaurant3.describe_restaurant()
9-3 用户
class User :
def __init__ (self, first_name, last_name, age, location) :
self.first_name = first_name
self.last_name = last_name
self.age = age
self.location = location
def describe_user (self) :
print("User Info" )
print("First name:\t" + self.first_name)
print("Last name:\t" + self.last_name)
print("Age\t" + str(self.age))
print("Location:\t" + self.location)
def greet_user (self) :
print("Hello, " + self.first_name + " " + self.last_name + "!" )
user1 = User("James" , "Brown" , 24 , "Guangzhou" )
user1.describe_user()
user1.greet_user()
print()
user2 = User("Jackson" , "White" , 15 , "Lendon" )
user2.describe_user()
user2.greet_user()
9-4 就餐人数
class Restaurant :
def __init__ (self, restaurant_name, cuisine_type, number_served=0 ) :
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
self.number_served = number_served
def describe_restaurant (self) :
print("Restaurant name:\t" + self.restaurant_name)
print("Cuisine type:\t" + self.cuisine_type)
def open_restaurant (self) :
print(self.restaurant_name.title() + " restaurant is open." )
def set_number_served (self, num) :
self.number_served = num
def increment_number_served (self, max) :
if self.number_served < max:
self.number_served += 1
restaurant = Restaurant("Jigongbao" , "Chuancai" , 23 )
print(str(restaurant.number_served) + " guests have been served." )
restaurant.number_served = 25
print(str(restaurant.number_served) + " guests have been served." )
restaurant.set_number_served(33 )
print(str(restaurant.number_served) + " guests have been served." )
restaurant.increment_number_served(40 )
print(str(restaurant.number_served) + " guests have been served." )
9-5 尝试登陆次数
class User :
def __init__ (self, first_name, last_name, age, location) :
self.first_name = first_name
self.last_name = last_name
self.age = age
self.location = location
self.login_attempts = 0
def describe_user (self) :
print("User Info" )
print("First name:\t" + self.first_name)
print("Last name:\t" + self.last_name)
print("Age\t" + str(self.age))
print("Location:\t" + self.location)
def greet_user (self) :
print("Hello, " + self.first_name + " " + self.last_name + "!" )
def increment_login_attempts (self) :
self.login_attempts += 1
def reset_login_attempts (self) :
self.login_attempts = 0
user = User("James" , "Brown" , 24 , "Guangzhou" )
user.increment_login_attempts()
print(user.login_attempts)
user.increment_login_attempts()
print(user.login_attempts)
user.increment_login_attempts()
print(user.login_attempts)
user.reset_login_attempts()
print(user.login_attempts)
9-6 冰淇淋小店
class Restaurant :
def __init__ (self, restaurant_name, cuisine_type, number_served=0 ) :
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
self.number_served = number_served
def describe_restaurant (self) :
print("Restaurant name:\t" + self.restaurant_name)
print("Cuisine type:\t" + self.cuisine_type)
def open_restaurant (self) :
print(self.restaurant_name.title() + " restaurant is open." )
def set_number_served (self, num) :
self.number_served = num
def increment_number_served (self, max) :
if self.number_served < max:
self.number_served += 1
class IceCreamStand (Restaurant) :
def __init__ (self, restaurant_name, cuisine_type, flavors, number_served=0 ) :
super().__init__(restaurant_name, cuisine_type, number_served)
self.flavors = flavors
def show_flavors (self) :
for flavor in self.flavors:
print(flavor)
flavors = ['flavor A' , 'flavor B' , 'flavor C' ]
ice = IceCreamStand("Ice Store" , "Ice" , flavors)
ice.show_flavors()
9-7 管理员
class User :
def __init__ (self, first_name, last_name, age, location) :
self.first_name = first_name
self.last_name = last_name
self.age = age
self.location = location
def describe_user (self) :
print("User Info" )
print("First name:\t" + self.first_name)
print("Last name:\t" + self.last_name)
print("Age\t" + str(self.age))
print("Location:\t" + self.location)
def greet_user (self) :
print("Hello, " + self.first_name + " " + self.last_name + "!" )
class Admin (User) :
def __init__ (self, first_name, last_name, age, location, privileges) :
super().__init__(first_name, last_name, age, location)
self.privileges = privileges
def show_privileges (self) :
print("Your privileges:" )
for privilege in self.privileges:
print("\t" + privilege)
privileges = ["can add post" , "can delete post" , "can be user" ]
admin = Admin("James" , "Brown" , 23 , "USA" , privileges)
admin.show_privileges()
9-8 权限
class User :
def __init__ (self, first_name, last_name, age, location) :
self.first_name = first_name
self.last_name = last_name
self.age = age
self.location = location
def describe_user (self) :
print("User Info" )
print("First name:\t" + self.first_name)
print("Last name:\t" + self.last_name)
print("Age\t" + str(self.age))
print("Location:\t" + self.location)
def greet_user (self) :
print("Hello, " + self.first_name + " " + self.last_name + "!" )
class Privileges :
def __init__ (self, privileges) :
self.privileges = privileges
def show_privileges (self) :
print("Your privileges:" )
for privilege in self.privileges:
print("\t" + privilege)
class Admin (User) :
def __init__ (self, first_name, last_name, age, location, Privileges) :
super().__init__(first_name, last_name, age, location)
self.privileges = Privileges
privileges = ["can add post" , "can delete post" , "can be user" ]
pri = Privileges(privileges)
admin = Admin("James" , "Brown" , 23 , "USA" , pri)
admin.privileges.show_privileges()
9-9 电瓶升级
class Car :
def __init__ (self, make, model, year) :
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def ge_descriptive_name (self) :
long_name = str(self.year) + ' ' + self.make + " " + self.model
return long_name.tltle()
def read_odometer (self) :
print("This car has " + str(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=70 ) :
self.battery_size = battery_size
def describe_battery (self) :
print("THis car has a " + str(self.battery_size) + "-kWh battery." )
def get_range (self) :
if self.battery_size == 70 :
range = 240
elif self.battery_size == 85 :
range = 270
message = "This car can go approximately " + str(range)
message += " miles on a full charege"
print(message)
def upgrade_battery (self) :
if self.battery_size != 85 :
self.battery_size = 85
class ElectricCar (Car) :
def __init__ (self, make, model, year) :
super().__init__(make, model, year)
self.battery = Battery()
car = ElectricCar('tesla' , 'model s' , 2016 )
car.battery.get_range()
car.battery.upgrade_battery()
car.battery.get_range()
9-10 导入Restaurant类
class Restaurant :
def __init__ (self, restaurant_name, cuisine_type) :
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
def describe_restaurant (self) :
print("Restaurant name:\t" + self.restaurant_name)
print("Cuisine type:\t" + self.cuisine_type)
def open_restaurant (self) :
print(self.restaurant_name.title() + " restaurant is open." )
# import_restaurant.py
import restaurant_module
restaurant = restaurant_module.Restaurant ("Jigonggao" , "Chuancai" )
restaurant.describe _restaurant()
9-11 导入Admin类
class User :
def __init__ (self, first_name, last_name, age, location) :
self.first_name = first_name
self.last_name = last_name
self.age = age
self.location = location
def describe_user (self) :
print("User Info" )
print("First name:\t" + self.first_name)
print("Last name:\t" + self.last_name)
print("Age\t" + str(self.age))
print("Location:\t" + self.location)
def greet_user (self) :
print("Hello, " + self.first_name + " " + self.last_name + "!" )
class Privileges :
def __init__ (self, privileges) :
self.privileges = privileges
def show_privileges (self) :
print("Your privileges:" )
for privilege in self.privileges:
print("\t" + privilege)
class Admin (User) :
def __init__ (self, first_name, last_name, age, location, Privileges) :
super().__init__(first_name, last_name, age, location)
self.privileges = Privileges
# import_admin.py
import admin_module
privileges = ["can add post" , "can delete post" , "can be user" ]
pri = admin_module.Privileges (privileges)
admin = admin_module.Admin ("James" , "Brown" , 23 , "USA" , pri)
admin.privileges .show _privileges()
9-12 多个模块
class User :
def __init__ (self, first_name, last_name, age, location) :
self.first_name = first_name
self.last_name = last_name
self.age = age
self.location = location
def describe_user (self) :
print("User Info" )
print("First name:\t" + self.first_name)
print("Last name:\t" + self.last_name)
print("Age\t" + str(self.age))
print("Location:\t" + self.location)
def greet_user (self) :
print("Hello, " + self.first_name + " " + self.last_name + "!" )
from user_module import User
class Privileges :
def __init__ (self, privileges) :
self.privileges = privileges
def show_privileges (self) :
print("Your privileges:" )
for privilege in self.privileges:
print("\t" + privilege)
class Admin (User) :
def __init__ (self, first_name, last_name, age, location, Privileges) :
super().__init__(first_name, last_name, age, location)
self.privileges = Privileges
from privilege_module import Privileges, Admin
privileges = ["can add post" , "can delete post" , "can be user" ]
pri = Privileges(privileges)
admin = Admin("James" , "Brown" , 23 , "USA" , pri)
admin.privileges.show_privileges()
9-13 使用OrderedDict
from collections import OrderedDict
vocabulary_table = OrderedDict({
'python' : "A popular programing language" ,
'list' : "A kind of structure which linked data with index" ,
'ergodic' : "Travel all stored values in a structure in order" ,
'tuple' : "A kind of structure like a unmodified list" ,
'output' : "an amount of something produced by a person, machine, factory, country, etc"
})
for vocabulary, explanation in vocabulary_table.items():
print(vocabulary + ":\t" + explanation)
9-14 骰子
from random import randint
class Die :
def __init__ (self, sides=6 ) :
self.sides = sides
def roll_die (self) :
return randint(1 , self.sides)
die6 = Die()
for i in range(1 , 11 ):
print(str(die6.roll_die()))
print()
die10 = Die(10 )
for i in range(1 , 11 ):
print(str(die10.roll_die()))
print()
die20 = Die(20 )
for i in range(1 , 11 ):
print(str(die20.roll_die()))