P142
#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 is '+self.restaurant_name+',cuisine type is '
+self.cuisine_type)
def open_restaurant(self):
print('Restaurant business as usual!')
#创建实例
restaurant = Restaurant('xiaolongkan','pot')
#打印属性
print(restaurant.restaurant_name)
print(restaurant.cuisine_type)
#调用方法describe_restaurant和open_restaurant
restaurant.describe_restaurant()
restaurant.open_restaurant()
#9-2
#创建3个实例
restaurant1 = Restaurant('马路边边','串串')
restaurant2 = Restaurant('汉拿山','烤肉')
restaurant3 = Restaurant('晴季','日料')
restaurant1.describe_restaurant()
restaurant2.describe_restaurant()
restaurant3.describe_restaurant()
#9-3
print('')
class User():
def __init__(self,first_name,last_name):
self.first_name = first_name
self.last_name = last_name
def describe_user(self):
print('姓:'+self.last_name+' 名:'+self.first_name)
def greet_user(self):
print('hi!'+self.last_name+self.first_name+'!')
user1 = User('星','墩墩')
user1.describe_user()
user1.greet_user()
P147
#9-4
class Restaurant():
def __init__(self,restaurant_name,cuisine_type,number_served):
#初始化属性
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
self.number_served = 0
def describe_restaurant(self):
print('restaurant name is '+self.restaurant_name+',cuisine type is '
+self.cuisine_type)
def open_restaurant(self):
print('Restaurant business as usual!')
def set_number_served(self,number):
self.number_served = number
def increment_number_served(self,increment_number):
self.number_served += increment_number
restaurant = Restaurant('马路边边','串串',0)
print('有'+str(restaurant.number_served)+'人在餐馆就餐过')
restaurant.set_number_served (20)
print('有'+str(restaurant.number_served)+'人在餐馆就餐过')
restaurant.increment_number_served (50)
print('有'+str(restaurant.number_served)+'人在餐馆就餐过')
#9-5
print('')
class User():
def __init__(self,first_name,last_name,login_attempts):
self.first_name = first_name
self.last_name = last_name
self.login_attempts = 0
def describe_user(self):
print('姓:'+self.last_name+' 名:'+self.first_name)
def greet_user(self):
print('hi!'+self.last_name+self.first_name+'!')
def increment_login_attempts(self):
self.login_attempts += 1
def reset_login_attempts(self):
self.login_attempts = 0
user = User('墩墩','星',0)
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
print(user.login_attempts)
user.reset_login_attempts()
print(user.login_attempts)
P153
#9-6(选取继承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 is '+self.restaurant_name+',cuisine type is '
+self.cuisine_type)
def open_restaurant(self):
print('Restaurant business as usual!')
class IceCreamStand(Restaurant):
def __init__(self,restaurant_name,cuisine_type):
super().__init__(restaurant_name,cuisine_type)
self.flavors = ['巧克力','草莓','奶油','哈密瓜']
def describe_icecream(self):
for flavor in self.flavors:
print('这个冰淇淋的口味是'+flavor)
#创建实例并显示冰淇淋口味
icecream = IceCreamStand('冰淇淋店','冰淇淋')
icecream.describe_icecream()
#随便调用一个看是不是父类中的方法
icecream.open_restaurant()
#9-7(继承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):
print('姓:'+self.last_name+' 名:'+self.first_name)
def greet_user(self):
print('hi!'+self.last_name+self.first_name+'!')
class Admin(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):
for privilege in self.privileges:
print(self.last_name+self.first_name+privilege+'!')
admin = Admin('星','墩墩')
admin.show_privileges()
#9-8
class User():
def __init__(self,first_name,last_name):
self.first_name = first_name
self.last_name = last_name
def describe_user(self):
print('姓:'+self.last_name+' 名:'+self.first_name)
def greet_user(self):
print('hi!'+self.last_name+self.first_name+'!')
class Privileges():
def __init__(self):
self.privileges = [' can add post',' can delete post',' can ban user']
def show_privileges(self):
print(self.privileges)
class Admin(User):
def __init__(self,first_name,last_name):
super().__init__(first_name,last_name)
self.pvlg = Privileges()
user = Admin('星','墩墩')
user.pvlg.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 get_description_name(self):
long_name = str(self.year) + ' '+self.make+' '+self.model
return long_name.title()
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 charge."
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()
my_tesla = ElectricCar('tesla','model s','2016')
my_tesla.battery.get_range()
my_tesla.battery.upgrade_battery()
my_tesla.battery.get_range()
9-10~9-12 略
P160
#9-13
import collections
#不调用OrderedDict
word = {}
word['list'] = '列表'
word['sum'] = '求和'
word['lower'] = '小写'
word['upper'] = '大写'
for k,v in word.items():
print(k,v)
print('')
#调用OrderedDict
word1 = collections.OrderedDict()
word1['list'] = '列表'
word1['sum'] = '求和'
word1['lower'] = '小写'
word1['upper'] = '大写'
for k,v in word1.items():
print(k,v)
#9-14
print('')
from random import randint
class Die():
def __init__(self):
self.sides = 6
def roll_die(self):
print(randint(1,6))
shaizi = Die()
i = 1
while i <= 10:
shaizi.roll_die()
i += 1
print('')
from random import randint
class Die():
def __init__(self):
self.sides = 10
def roll_die(self):
print(randint(1,10))
shaizi = Die()
i = 1
while i <= 10:
shaizi.roll_die()
i += 1
print('')
from random import randint
class Die():
def __init__(self):
self.sides = 20
def roll_die(self):
print(randint(1,20))
shaizi = Die()
i = 1
while i <= 10:
shaizi.roll_die()
i += 1