Python第九章課後習題

9-1 餐館:

class Restaurant():
	"""docstring for Restaurant"""
	def __init__(self, restaurant_name, cuisine_type):
		self.restaurant_name = restaurant_name
		self.cuisine_type=cuisine_type
	def describe_restaurant(self):
		print(self.restaurant_name,self.cuisine_type)
	def open_restaurant(self):
		print("The restaurant is opening")

restaurant=Restaurant('bobo_restaurant','delicious')
print(restaurant.restaurant_name,restaurant.cuisine_type)
restaurant.describe_restaurant()
restaurant.open_restaurant()
		

運行結果:

9-2 三家餐館:

restaurant1=Restaurant("lmd_restaurant",'good')
restaurant1.describe_restaurant()
restaurant2=Restaurant("hyk_restaurant",'very good')
restaurant2.describe_restaurant()
restaurant3=Restaurant("kq_restaurant",'so good')
restaurant3.describe_restaurant()

運行結果:


9-3 用戶:

class User():
	"""docstring for User"""
	def __init__(self, first_name,last_name,age):
		self.first_name = first_name
		self.last_name = last_name
		self.age = age
	def describe_user(self):
		print("This is "+self.first_name.title()+' '+self.last_name.lower()+',ages '+str(self.age))
	def greet_user(self):
		print('Hello '+self.first_name.title()+' '+self.last_name.lower())
-
def deal(usr):
	usr.describe_user()
	usr.greet_user()
usr1=User('Ke','sibo',21)
deal(usr1)
usr2=User("Lao",'madong',20)
deal(usr2)
usr3=User("kuang",'qian',20)
deal(usr3)

運行結果:


9-4 就餐人數:

class Restaurant():
	"""docstring for 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(self.restaurant_name,self.cuisine_type,self.number_served)
	def open_restaurant(self):
		print("The restaurant is opening")
	def set_number_served(self,number_served):
		self.number_served=number_served
	def  increment_number_served(self,num):
		self.number_served+=num
	def show(self):
		print(str(self.number_served)+' people has eat sth here')
restaurant=Restaurant('bobo_restaurant','delicious')
restaurant.show()
restaurant.number_served=3
restaurant.show()
restaurant.set_number_served(5)
restaurant.show()
restaurant.increment_number_served(3)
restaurant.show()

運行結果:

9-5 嘗試登錄次數:

class User():
	"""docstring for User"""
	def __init__(self, first_name,last_name,age,login_attempts):
		self.first_name = first_name
		self.last_name = last_name
		self.age = age
		self.login_attempts=login_attempts
	def describe_user(self):
		print("This is "+self.first_name.title()+' '+self.last_name.lower()+',ages '+str(self.age))
	def greet_user(self):
		print('Hello '+self.first_name.title()+' '+self.last_name.lower())
	def increment_login_attempts(self):
		self.login_attempts+=1
	def reset_login_attempts(self):
		self.login_attempts=0
	def show(self):
		print(self.login_attempts)

usr1=User('Ke','sibo',21,3)
usr1.show()
for i in range(10):
	usr1.increment_login_attempts()
usr1.show()
usr1.reset_login_attempts()
usr1.show()

運行結果:


9-6 冰淇淋小店:

class IceCreamStand(Restaurant):
	def __init__(self, restaurant_name, cuisine_type,number_served=0,flavors=[]):
		super().__init__(restaurant_name, cuisine_type,number_served)
		self.flavors=flavors[:]
	def show(self):
		for x in self.flavors:
			print(x,end=' ')
flavors=['apples','banana','orange']
ic1=IceCreamStand("ke_restaurant",'good',100,flavors)
ic1.show()
運行結果:

9-7 管理員:

class Admin(User):
	"""docstring for Admin"""
	def __init__(self, first_name,last_name,age,login_attempts,privileges):
		super().__init__(first_name,last_name,age,login_attempts)
		self.privileges = privileges[:]
	def show_privileges(self):
		for x in self.privileges:
			print(x)

arr=['can add post','can delete post','can ban user']
ad1=Admin('ke'.title(),'sibo'.lower(),22,0,arr)
ad1.show_privileges()

運行結果:


9-8 權限:

class Privileges(object):
	"""docstring for Privileges"""
	def __init__(self, privileges):
		self.privileges = privileges
	def show_privileges(self):
		for x in self.privileges:
			print(x)

class Admin(User):
	"""docstring for Admin"""
	def __init__(self, first_name,last_name,age,login_attempts,arr):
		super().__init__(first_name,last_name,age,login_attempts)
		self.privileges = Privileges(arr)

arr=['can add post','can delete post','can ban user']
ad1=Admin('ke'.title(),'sibo'.lower(),22,0,arr)
ad1.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 get_descriptive_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 upgrade_battery(self):
		self.battery_size=85 if self.battery_size!=85 else self.battery_size 
	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)

class ElectricCar(Car):
	"""電動汽車的獨特之處"""
	def __init__(self, make, model, year):
		"""初始化父類的屬性"""
		super().__init__(make, model, year)
		self.battery=Battery()

my_tesla = ElectricCar('tesla', 'models', 2016)
my_tesla.battery.get_range()
my_tesla.battery.upgrade_battery()
my_tesla.battery.get_range()

運行結果:


9-10 引入restaurant類:

import Restaurant
res=Restaurant.Restaurant('ke_restaurant', 'good',10)
res.describe_restaurant()

運行結果:


9-11 導入admin類:

import admin

arr=['can add post','can delete post','can ban user']
ad=admin.Admin('ke'.title(),'sibo'.lower(),22,0,arr)
ad.privileges.show_privileges()

運行結果:


9-12 多個模塊:

import user
import admin

arr=['can add post','can delete post','can ban user']
ad=admin.Admin('ke'.title(),'sibo'.lower(),22,0,arr)
ad.privileges.show_privileges()

運行結果:

同上

9-13 使用OrderedDict:

from collections import OrderedDict
#不用orderdict的話,輸出不一定按照添加的順序(雖然試了好多次都是按原順序輸出的)
#但添加了這個就一定按原順序輸出
arr=OrderedDict()
arr['c']='C'
arr[(2,3)]='A'
arr[3]='B'

for key,value in arr.items():
	print(key,value)

運行結果:


9-14 骰子:

from random import randint
class Die(object):
	"""docstring for Die"""
	def __init__(self, sides=6):
		self.sides = sides
	def roll_die(self):
		print(randint(1,self.sides),end=' ')
	def roll_10(self):
		for i in range(10):
			self.roll_die()
		print()
touzi1=Die()
touzi1.roll_10()
touzi2=Die(10)
touzi2.roll_10()
touzi3=Die(20)
touzi3.roll_10()

執行結果:


9-15 略


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章