1. 程式人生 > >Python作業(9.1-9.14)

Python作業(9.1-9.14)

Python第九章作業

9-1 餐館 : 建立一個名為Restaurant 的類, 其方法__init__() 設定兩個屬性: restaurant_name cuisine_type 。 建立一個名為describe_restaurant() 的方法和一個名為open_restaurant() 的方法, 其中前者列印前述兩項資訊, 而後者列印一條訊息, 指出餐館正在營業。根據這個類建立一個名為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("The name of this restaurant is :"+self.restaurant_name)
		print("The type of this restaurant is :"+self.cuisine_type)
	def open_restaurant(self):
		print("It's OPEN now")
my_restaurant=Restaurant("KFC","Fast food")
print(my_restaurant.restaurant_name)
print(my_restaurant.cuisine_type)
my_restaurant.describe_restaurant()
my_restaurant.open_restaurant()
		



9-3 使用者 : 建立一個名為User 的類, 其中包含屬性first_name last_name , 還有使用者簡介通常會儲存的其他幾個屬性。 在類User 中定義一個名為describe_user() 的方法, 它列印使用者資訊摘要; 再定義一個名為greet_user() 的方法, 它向用戶發出個性化的問候。建立多個表示不同使用者的例項, 並對每個例項都呼叫上述兩個方法。

class User():
	def __init__(self,first_name,last_name):
		self.first_name=first_name
		self.last_name=last_name
	def describe_user(self):
		print("The user's name is "+self.first_name+" "+self.last_name)
	def greet_user(self):
		print("Hello, my frined")
my_user1=User("Yuan","Xu")
my_user2=User("Yidan","Xu")
my_user1.describe_user()
my_user1.greet_user()
my_user2.describe_user()
my_user2.greet_user()



9-4 就餐人數 : 在為完成練習9-1而編寫的程式中, 新增一個名為number_served 的屬性, 並將其預設值設定為0。 根據這個類建立一個名為restaurant 的例項; 列印有多少人在這家餐館就餐過, 然後修改這個值並再次列印它。新增一個名為set_number_served() 的方法, 它讓你能夠設定就餐人數。 呼叫這個方法並向它傳遞一個值, 然後再次列印這個值。新增一個名為increment_number_served() 的方法, 它讓你能夠將就餐人數遞增。 呼叫這個方法並向它傳遞一個這樣的值: 你認為這家餐館每天可能接待的就餐人數。

class Restaurant():
	def __init__(self,restaurant_name ,cuisine_type ):
		self.restaurant_name=restaurant_name
		self.cuisine_type=cuisine_type
		self.number =0
	def set_number_served(self,number):
		self.number=number
	def increment_number_served(self,add):
		self.number+=add
	def describe_restaurant(self):
		print("The name of this restaurant is :"+self.restaurant_name)
		print("The type of this restaurant is :"+self.cuisine_type)
	def open_restaurant(self):
		print("It's OPEN now")
my_restaurant=Restaurant("KFC","Fast food")
print("The number of served man is "+str(my_restaurant.number))
my_restaurant.set_number_served(10)
print("After changing,the number is "+str(my_restaurant.number))
my_restaurant.increment_number_served(10)
print("Now,customers has increased 10,so the number of current customers is "+str(my_restaurant.number))


9-6 冰淇淋小店 : 冰淇淋小店是一種特殊的餐館。 編寫一個名為IceCreamStand 的類, 讓它繼承你為完成練習9-1或練習9-4而編寫的Restaurant 類。 這兩個版本的Restaurant 類都可以, 挑選你更喜歡的那個即可。 新增一個名為flavors 的屬性, 用於儲存一個由各種口味的冰淇淋組成的列表。 編寫一個顯示這些的方法。 建立一個IceCreamStand 例項, 並呼叫這個方法。

class IceCreamStand(Restaurant):
	def __init__(self,restaurant_name,cuisine_type):
		super().__init__(restaurant_name,cuisine_type)
		self.flavors=['strawberry','peach','apple','watermelon']
	def describe_flavors(self):
		print("There are four kinds of flavors:")
		print(self.flavors)
my_isCreamStand=IceCreamStand('Vow_xy','Icecream')
my_isCreamStand.describe_flavors()


9-10 匯入Restaurant 類 : 將最新的Restaurant 類儲存在一個模組中。 在另一個檔案中, 匯入Restaurant 類, 建立一個Restaurant 例項, 並呼叫Restaurant 的一個方法, 以確認import 語句正確無誤

from restaurant import Restaurant

my_restaurant=Restaurant('XY','fruit salad')
my_restaurant.describe_restaurant()
my_restaurant.open_restaurant()


9-14 骰子 : 模組random 包含以各種方式生成隨機數的函式, 其中的randint() 返回一個位於指定範圍內的整數, 例如, 下面的程式碼返回一個1~6內的整數:
from random import randint
x = randint(1, 6)
請建立一個Die 類, 它包含一個名為sides 的屬性, 該屬性的預設值為6。 編寫一個名為roll_die() 的方法, 它列印位於1和骰子面數之間的隨機數。 建立一個6面的骰子, 再擲10次。 建立一個10面的骰子和一個20面的骰子, 並將它們都擲10次。

from random import randint
class Die():
	def __init__(self,sides=6):
		self.sides=sides
	def roll_die(self):
		print(randint(1,self.sides))
six_die=Die(6)
ten_die=Die(10)
twenty_die=Die(20)
for number in range(1,11):
	six_die.roll_die()
print("*****************************")
for number in range(1,11):
	ten_die.roll_die()
print("*****************************")
for number in range(1,11):
	twenty_die.roll_die()