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()