《Python编程:从入门到实践》答案

电玩女神 2022-12-05 15:15 360阅读 0赞

i人生总会有让你不舒服的事,不要在它上纠结,把时间浪费在你想做的事上。

第九章

20200911074606956.png

  1. class Restaruarant():
  2. def __init__(self,restaurant_name,cuisine_type):
  3. self.restaurant_name=restaurant_name
  4. self.cuisine_type=cuisine_type
  5. def describe_restaurant(self):
  6. print("The cuisine_type is: "+self.cuisine_type)
  7. print("The restaurant_name is: "+self.restaurant_name)
  8. def open_restaurant(self):
  9. print("We are in business.")
  10. R1=Restaruarant('客来','东北菜')
  11. print(R1.restaurant_name+" is good at "+R1.cuisine_type+".")
  12. R1.describe_restaurant()
  13. R1.open_restaurant()

出错点:

1、__init__()两边的下划线是两个!

2、两个方法里忘记了加self

20200911085115246.png

  1. class Restaruarant():
  2. def __init__(self,restaurant_name,cuisine_type):
  3. self.restaurant_name=restaurant_name
  4. self.cuisine_type=cuisine_type
  5. def describe_restaurant(self):
  6. print("The cuisine_type is: "+self.cuisine_type)
  7. print("The restaurant_name is: "+self.restaurant_name)
  8. def open_restaurant(self):
  9. print("We are in business.")
  10. R1=Restaruarant('客来','东北菜')
  11. print(R1.restaurant_name+" is good at "+R1.cuisine_type+".")
  12. R1.describe_restaurant()
  13. R1.open_restaurant()
  14. print("\n")
  15. R2=Restaruarant('红旗','东北菜')
  16. R3=Restaruarant('山西','刀削面')
  17. R4=Restaruarant('西北','兰州拉面')
  18. R2.describe_restaurant()
  19. R2.open_restaurant()
  20. R3.describe_restaurant()
  21. R3.open_restaurant()
  22. R4.describe_restaurant()
  23. R4.open_restaurant()

20200911085513586.png

  1. class User():
  2. def __init__(self,first_name,last_name,age):
  3. self.first_name=first_name
  4. self.last_name=last_name
  5. self.age=age
  6. def describe_user(self):
  7. print("first name is "+self.first_name)
  8. print("last name is "+self.last_name)
  9. print("age is "+str(self.age))
  10. def greet_user(self):
  11. full_name=self.first_name+" "+self.last_name
  12. print("Welcome you ,"+full_name+" ,have a nice day .")
  13. user1=User('张','宸宸',23)
  14. user1.greet_user()
  15. user1.describe_user()
  16. user2=User('王','舍',24)
  17. user2.greet_user()
  18. user2.describe_user()
  19. user3=User('肖','大在',83)
  20. user3.greet_user()
  21. user3.describe_user()

【注意】每个属性前面都是要加self.的。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NodXl1ZGV4aWFvd3U_size_16_color_FFFFFF_t_70

  1. class Restaruarant():
  2. def __init__(self,restaurant_name,cuisine_type):
  3. self.restaurant_name=restaurant_name
  4. self.cuisine_type=cuisine_type
  5. self.number_served=0
  6. def describe_restaurant(self):
  7. print("The cuisine_type is: "+self.cuisine_type)
  8. print("The restaurant_name is: "+self.restaurant_name)
  9. def open_restaurant(self):
  10. print("We are in business.")
  11. def set_number_served(self,num):
  12. self.number_served=num
  13. def increment_number_served(self,num):
  14. self.number_served+=num
  15. R1=Restaruarant('客来','东北菜')
  16. print(R1.restaurant_name+" is good at "+R1.cuisine_type+
  17. "and "+str(R1.number_served)+" people have been came here.")
  18. R1.set_number_served(3000)
  19. print(R1.restaurant_name+" is good at "+R1.cuisine_type+
  20. "and "+str(R1.number_served)+" people have been came here.")
  21. R1.increment_number_served(30)
  22. print(R1.restaurant_name+" is good at "+R1.cuisine_type+
  23. "and "+str(R1.number_served)+" people have been came here.")

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NodXl1ZGV4aWFvd3U_size_16_color_FFFFFF_t_70 1

  1. class User():
  2. def __init__(self,first_name,last_name,age):
  3. self.first_name=first_name
  4. self.last_name=last_name
  5. self.age=age
  6. self.login_attempts=0
  7. def increment_login_attempts(self):
  8. self.login_attempts+=1
  9. def reset_login_attempts(self):
  10. self.login_attempts=0
  11. def describe_user(self):
  12. print("first name is "+self.first_name)
  13. print("last name is "+self.last_name)
  14. print("age is "+str(self.age))
  15. def greet_user(self):
  16. full_name=self.first_name+" "+self.last_name
  17. print("Welcome you ,"+full_name+" ,have a nice day .")
  18. user1=User('张','宸宸',23)
  19. print(user1.login_attempts)
  20. user1.increment_login_attempts();
  21. user1.increment_login_attempts();
  22. user1.increment_login_attempts();
  23. user1.increment_login_attempts();
  24. print(user1.login_attempts)
  25. user1.reset_login_attempts();
  26. print(user1.login_attempts)

2020091111121961.png

  1. class Restaruarant():
  2. def __init__(self,restaurant_name,cuisine_type):
  3. self.restaurant_name=restaurant_name
  4. self.cuisine_type=cuisine_type
  5. self.number_served=0
  6. def describe_restaurant(self):
  7. print("The cuisine_type is: "+self.cuisine_type)
  8. print("The restaurant_name is: "+self.restaurant_name)
  9. def open_restaurant(self):
  10. print("We are in business.")
  11. def set_number_served(self,num):
  12. self.number_served=num
  13. def increment_number_served(self,num):
  14. self.number_served+=num
  15. class IceCreamStand(Restaruarant):
  16. def __init__(self,restaurant_name,cuisine_type):
  17. super().__init__(restaurant_name,cuisine_type)
  18. self.flavors=['strawberry','berry','grape','banana']
  19. def show_Ice(self):
  20. for key in self.flavors:
  21. print(key)
  22. My_Ice=IceCreamStand('客来','东北菜')
  23. My_Ice.show_Ice()

20200911112317627.png

  1. class User():
  2. def __init__(self,first_name,last_name,age):
  3. self.first_name=first_name
  4. self.last_name=last_name
  5. self.age=age
  6. self.login_attempts=0
  7. def increment_login_attempts(self):
  8. self.login_attempts+=1
  9. def reset_login_attempts(self):
  10. self.login_attempts=0
  11. def describe_user(self):
  12. print("first name is "+self.first_name)
  13. print("last name is "+self.last_name)
  14. print("age is "+str(self.age))
  15. def greet_user(self):
  16. full_name=self.first_name+" "+self.last_name
  17. print("Welcome you ,"+full_name+" ,have a nice day .")
  18. class Admin(User):
  19. def __init__(self,first_name,last_name,age):
  20. super().__init__(first_name,last_name,age)
  21. self.privileges=["can ban user",'can delete post','can add post']
  22. def show_privileges(self):
  23. for key in self.privileges:
  24. print(key)
  25. Admin1=Admin('张','宸宸',23)
  26. Admin1.show_privileges()

【注意】super().__init__()的写法。、

20200911114353137.png

  1. class Privileges():
  2. def __init__(self):
  3. self.privileges=["can ban user",'can delete post','can add post']
  4. def show_privileges(self):
  5. for key in self.privileges:
  6. print(key)
  7. class User():
  8. def __init__(self,first_name,last_name,age):
  9. self.first_name=first_name
  10. self.last_name=last_name
  11. self.age=age
  12. self.login_attempts=0
  13. def increment_login_attempts(self):
  14. self.login_attempts+=1
  15. def reset_login_attempts(self):
  16. self.login_attempts=0
  17. def describe_user(self):
  18. print("first name is "+self.first_name)
  19. print("last name is "+self.last_name)
  20. print("age is "+str(self.age))
  21. def greet_user(self):
  22. full_name=self.first_name+" "+self.last_name
  23. print("Welcome you ,"+full_name+" ,have a nice day .")
  24. class Admin(User):
  25. def __init__(self,first_name,last_name,age):
  26. super().__init__(first_name,last_name,age)
  27. self.privileges=Privileges()
  28. Admin1=Admin('张','宸宸',23)
  29. Admin1.privileges.show_privileges()

【注意】

1、把某个函数抽取出来之后要把原函数删除。

2、当把一个类的实例用作了属性时,调用这个成为属性的类中的方法要用【类 . 属性名 . 被当成属性的类的方法】而不能直接由类调用被当成属性的类的方法。

3、被当成属性的类要写在最上边,先加载。

20200911115501876.png

  1. class Car():
  2. def __init__(self,made,model,year):
  3. self.made=made
  4. self.model=model
  5. self.year=year
  6. def descriptive_name(self):
  7. long_name=str(self.year)+' '+self.made+' '+self.model
  8. return long_name.title()
  9. class Battery():
  10. def __init__(self,battery=70):
  11. self.battery=battery
  12. def describe_battery(self):
  13. print("This car has a "+str(self.battery)+"-kwh battery")
  14. def get_range(self):
  15. if self.battery==70:
  16. range=240
  17. elif self.battery==85:
  18. range=270
  19. message="This car can go "+str(range)
  20. message+=" miles on a full charge."
  21. print(message)
  22. def update_battery(self):
  23. if self.battery!=85:
  24. self.battery=85
  25. class EleCar(Car):
  26. def __init__(self,made,model,year):
  27. super().__init__(made,model,year)
  28. self.battery=Battery()
  29. new_eleCar=EleCar("Audi","s450",4)
  30. new_eleCar.battery.get_range()
  31. new_eleCar.battery.update_battery()
  32. new_eleCar.battery.get_range()

20200913082232712.png

  1. #Restaurant.py
  2. class Restaurant():
  3. def __init__(self,name,make,model,year):
  4. self.name=name
  5. self.make=make
  6. self.model=model
  7. self.year=year
  8. def show_detils(self):
  9. print(str(self.year)+" , "+self.name+" , "+self.model+" , "+self.make)
  10. from Restaurant import Restaurant
  11. my_class=Restaurant('Benz','China','s-450','2016')
  12. my_class.show_detils()

2020091308234065.png

  1. #模块
  2. class Privileges():
  3. def __init__(self):
  4. self.privileges=["can ban user",'can delete post','can add post']
  5. def show_privileges(self):
  6. for key in self.privileges:
  7. print(key)
  8. class User():
  9. def __init__(self,first_name,last_name,age):
  10. self.first_name=first_name
  11. self.last_name=last_name
  12. self.age=age
  13. self.login_attempts=0
  14. def increment_login_attempts(self):
  15. self.login_attempts+=1
  16. def reset_login_attempts(self):
  17. self.login_attempts=0
  18. def describe_user(self):
  19. print("first name is "+self.first_name)
  20. print("last name is "+self.last_name)
  21. print("age is "+str(self.age))
  22. def greet_user(self):
  23. full_name=self.first_name+" "+self.last_name
  24. print("Welcome you ,"+full_name+" ,have a nice day .")
  25. class Admin(User):
  26. def __init__(self,first_name,last_name,age):
  27. super().__init__(first_name,last_name,age)
  28. self.privileges=Privileges()
  29. from ex911 import User,Privileges,Admin
  30. Admin1=Admin('张','宸宸',23)
  31. Admin1.privileges.show_privileges()

20200913084655256.png

  1. from ex913 import User
  2. class Privileges():
  3. def __init__(self):
  4. self.privileges=["can ban user",'can delete post','can add post']
  5. def show_privileges(self):
  6. for key in self.privileges:
  7. print(key)
  8. class Admin(User):
  9. def __init__(self,first_name,last_name,age):
  10. super().__init__(first_name,last_name,age)
  11. self.privileges=Privileges()
  12. class User():
  13. def __init__(self,first_name,last_name,age):
  14. self.first_name=first_name
  15. self.last_name=last_name
  16. self.age=age
  17. self.login_attempts=0
  18. def increment_login_attempts(self):
  19. self.login_attempts+=1
  20. def reset_login_attempts(self):
  21. self.login_attempts=0
  22. def describe_user(self):
  23. print("first name is "+self.first_name)
  24. print("last name is "+self.last_name)
  25. print("age is "+str(self.age))
  26. def greet_user(self):
  27. full_name=self.first_name+" "+self.last_name
  28. print("Welcome you ,"+full_name+" ,have a nice day .")
  29. from ex911 import Privileges,Admin
  30. from ex913 import User
  31. Admin1=Admin('张','宸宸',23)
  32. Admin1.privileges.show_privileges()

20200913085832467.png

  1. from collections import OrderedDict
  2. #创建三个同学,把他们放在一个班级里,遍历出所有同学,
  3. #错误1 把班级写成了class,整成了Python中的关键字。
  4. #错误2 内部的字典最后一个键值对后面也是有逗号的。
  5. #错误3 “good at ”在字典中写的时候后面是有空格的,但for 循环中忘记写了。
  6. classes = OrderedDict()
  7. classes['s1']={
  8. 'name':'Zhang',
  9. 'num':'001',
  10. 'age':'18',
  11. 'good at ':'math',
  12. }
  13. classes['s2']={
  14. 'name':'Wang',
  15. 'num':'002',
  16. 'age':'16',
  17. 'good at ':'Chinese',
  18. }
  19. classes['s3']={
  20. 'na3e':'Li',
  21. 'num':'003',
  22. 'age':'17',
  23. 'good at ':'Python',
  24. }
  25. for name,info in classes.items():
  26. print('\nStudent name is : '+name)
  27. print('\tStudent number is : '+info['num'])
  28. print('\tStudent age is : '+info['age'])
  29. print('\tStudent goot at is : '+info['good at '])

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NodXl1ZGV4aWFvd3U_size_16_color_FFFFFF_t_70 2

  1. from random import randint
  2. class Die():
  3. def __init__(self):
  4. self.sides=6
  5. def show_die(self):
  6. self.sides=randint(1,6)
  7. print(self.sides)
  8. ex=Die()
  9. for i in range(1,11):
  10. ex.show_die()
  11. class Die2():
  12. def __init__(self):
  13. self.sides=6
  14. def show_die(self):
  15. self.sides=randint(1,11)
  16. print(self.sides)
  17. ex2=Die2()
  18. for i in range(1,11):
  19. ex2.show_die()

发表评论

表情:
评论列表 (有 0 条评论,360人围观)

还没有评论,来说两句吧...

相关阅读