第五週作業(9,10章)

9-1~9-2

#coding:gbk
#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's name is: " + self.restaurant_name)
		print("Its cuisine_type is: " + self.cuisine_type)
		
	def open_restaurant(self):
		print("We are open.")

restaurant = Restaurant('26號餐廳', 'a')
print(restaurant.restaurant_name)
print(restaurant.cuisine_type)

restaurant.describe_restaurant()
restaurant.open_restaurant()

print('-----------------------------------------')
'''
如果def describe_restaurant(self)和open_restaurant(self)忘記
在寫上self形參,運行時會報告類似於:
TypeError: function() takes 0 positional arguments but 1 was given
的錯誤
'''

#9-2 三家餐館

r1 = Restaurant('2號餐廳', 'a')
r2 = Restaurant('6號餐廳', 'b')
r3 = Restaurant('8號餐廳', 'c')

r1. describe_restaurant() 
r2. describe_restaurant() 
r3. describe_restaurant() 

9-3

#coding:gbk
#9-3 用戶

class User():
	def __init__(self, first_name, last_name, age, gender):
		self.first_name = first_name
		self.last_name = last_name
		self.age = age
		self.gender = gender
	
	def describe_user(self):
		print('Its name is ' + self.first_name + ' ' + self.last_name)
		print('It is ' + str(self.age) + ' years old')
		print('Its gender is: ' + self.gender)
	
	def greet_user(self):
		print('Hello, ' + self.first_name + ' ' + self.last_name)
		
p1 = User('Timmy', 'X', 24, 'male')
p2 = User('Tom', 'H', 26, 'male')

p1.describe_user()
p1.greet_user()
p2.describe_user()
p2.greet_user()

9-4

#coding:gbk
#9-4 就餐人數

class Restaurant():
	def __init__(self, restaurant_name, cuisine_type):
		 self.restaurant_name = restaurant_name
		 self.cuisine_type = cuisine_type
		 number_served = 0
		
	def describe_restaurant(self):
		print("restaurant's name is: " + self.restaurant_name)
		print("Its cuisine_type is: " + self.cuisine_type)
		
	def open_restaurant(self):
		print("We are open.")

	def set_number_served(n):
		number_served = n
	
	def  increment_number_served():
		number_served++

9-5

#coding:gbk
#9-5 嘗試登錄次數

class User():
	def __init__(self, first_name, last_name, age, gender, login_attempts):
		self.first_name = first_name
		self.last_name = last_name
		self.age = age
		self.gender = gender
		self.login_attempts = login_attempts
	
	def describe_user(self):
		print('Its name is ' + self.first_name + ' ' + self.last_name)
		print('It is ' + str(self.age) + ' years old')
		print('Its gender is: ' + self.gender)
	
	def greet_user(self):
		print('Hello, ' + self.first_name + ' ' + self.last_name)
	
	def increment_login_attempts(self):
		self.login_attempts = self.login_attempts + 1
		
	def reset_login_attempts(self):
		self.login_attempts = 0
		
p1 = User('Timmy', 'X', 24, 'male', 3)


p1.increment_login_attempts()
p1.increment_login_attempts()
p1.increment_login_attempts()
print(p1.login_attempts)

p1.reset_login_attempts()
print(p1.login_attempts)


9-6

#coding:gbk
#9-6 冰淇淋小店

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's name is: " + self.restaurant_name)
		print("Its cuisine_type is: " + self.cuisine_type)
		
	def open_restaurant(self):
		print("We are open.")
		
class IceCreamStand(Restaurant):
	def __init__(self, restaurant_name, cuisine_type, flavors):
		super().__init__(restaurant_name, cuisine_type)
		self.flavors = flavors
	
	def print_icecream(self):
		print(self.flavors)
	
fl = ['a', 'b', 'c']
i = IceCreamStand('2號店', 'k', fl)
i.print_icecream()
	

9-7

#coding:gbk
#9-7 管理員

class User():
	def __init__(self, first_name, last_name, age, gender):
		self.first_name = first_name
		self.last_name = last_name
		self.age = age
		self.gender = gender
	
	def describe_user(self):
		print('Its name is ' + self.first_name + ' ' + self.last_name)
		print('It is ' + str(self.age) + ' years old')
		print('Its gender is: ' + self.gender)
	
	def greet_user(self):
		print('Hello, ' + self.first_name + ' ' + self.last_name)
		
class Admin(User):
	def __init__(self, first_name, last_name, age, gender, privileges):
		super().__init__(first_name, last_name, age, gender)
		self.privileges = privileges
	
	def show_privileges(self):
		print('管理員' + self.first_name + self.last_name + '的權限有:')
		for pri in self.privileges:
			print(pri)

pri = ["can add post", "can delete post", "can ban user"]
a = Admin('於', '舟', 20, 'female', pri)
a.show_privileges()

9-8

#coding:gbk
#9-8 權限

class Privileges():
	def __init__(self, privileges):
		self.privileges = privileges
	
	def show_privileges(self):
		print('管理員的權限有:')
		for pri in self.privileges:
			print(pri)
			
class User():
	def __init__(self, first_name, last_name, age, gender):
		self.first_name = first_name
		self.last_name = last_name
		self.age = age
		self.gender = gender
	
	def describe_user(self):
		print('Its name is ' + self.first_name + ' ' + self.last_name)
		print('It is ' + str(self.age) + ' years old')
		print('Its gender is: ' + self.gender)
	
	def greet_user(self):
		print('Hello, ' + self.first_name + ' ' + self.last_name)
		
class Admin(User):
	def __init__(self, first_name, last_name, age, gender):
		super().__init__(first_name, last_name, age, gender)
		self.privileges = Privileges(["can add post", "can delete post", "can ban user"])
	
a = Admin('於', '舟', 20, 'female')
a.privileges.show_privileges()

10-1

#coding:gbk

print('------------1.讀取整個文件------------')
with open('If by Life You Were Deceived.txt') as f:
	content = f.read() #read()發揮一個長字符串
	print(content)

print('\n------------1.遍歷文件對象------------')
with open('If by Life You Were Deceived.txt') as f:
	content = f.readlines() #readlines 返回一個列表,每一行爲一個元素
	for line in content:
		print(line.rstrip())
		

print('\n-------1.存儲爲列表,在with外打印---------')
with open('If by Life You Were Deceived.txt') as f:
	lines = f.readlines()

for line in lines:
	print(line.rstrip())	


10-2

print('\n--------------4.單詞替換-------------')
for line in lines:
	'''                      !注意:replace的作用是暫時的,這樣寫輸出的還是
	line.replace('life', 'a') 原來的單詞
	print(line)
	'''
	print(line.replace('life', 'someone').rstrip())


10-3
#coding:gbk

str = input("請輸入你的名字: ")
with open('guest.txt', 'w') as f:
	f.write(str)
10-4
#coding:gbk
flag = 1
with open('guest_book.txt', 'w') as f:
	while(flag != '0'):
		name = input("請輸入你的名字,輸入0退出:")
		if name == '0':
			break
		print("你好, " + name)
		f.write(name+'\n')
	
	

10-6~10-7
#coding:gbk
print('這是一個簡單加法計算器,輸入quit退出\n')

while(1):
	a = input('請輸入數字a: ')
	if a == 'quit':
		break
	b = input('請輸入數字b: ')
	if b == 'quit':
		break
	try:
		c = int(a) + int(b)
	except ValueError:
		print('你輸入的不是數字哦~\n')
	else:
		print('答案是:' + str(c) + '\n')

10-8
#coding:gbk
files = ['cats.txt', 'dogs.txt']
for file in files:
	try:
		with open(file) as f:
			content = f.read()
	except FileNotFoundError:
		print('找不到這個文件(╥╯^╰╥)\n')
	else:
		print(content)
10-9
#coding:gbk
files = ['cats.txt', 'dogs.txt']
for file in files:
	try:
		with open(file) as f:
			content = f.read()
	except FileNotFoundError:
		#print('找不到這個文件(╥╯^╰╥)\n')
		pass
	else:
		print(content)
		
		
10-10
#coding:gbk
textname = "Alice's Adventures in Wonderland.txt"


with open(textname, 'r') as f:
	contents = f.read()
'''
except FileNotFoundError:
	print('找不到文件(╥╯^╰╥)\n')
'''
words = contents.split()
counter = len(words)
num = contents.lower().count('Alice')
msg = '《愛麗絲夢遊仙境》這本書大約有:' + str(counter) +'個單詞'
print(msg + '\n其中’Alice‘這個單詞出現了' + str(num) +'次。')

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