《python编程从入门到实践》第9章 类(练习)

P142

#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 name is '+self.restaurant_name+',cuisine type is '
        +self.cuisine_type)
        
    def open_restaurant(self):
        print('Restaurant business as usual!')
        
#创建实例
restaurant = Restaurant('xiaolongkan','pot')

#打印属性
print(restaurant.restaurant_name)
print(restaurant.cuisine_type)

#调用方法describe_restaurant和open_restaurant
restaurant.describe_restaurant()
restaurant.open_restaurant()


#9-2
#创建3个实例
restaurant1 = Restaurant('马路边边','串串')
restaurant2 = Restaurant('汉拿山','烤肉')
restaurant3 = Restaurant('晴季','日料')

restaurant1.describe_restaurant()
restaurant2.describe_restaurant()
restaurant3.describe_restaurant()
        
        
#9-3
print('')
class User():
    def __init__(self,first_name,last_name):
        self.first_name = first_name
        self.last_name = last_name
        
    def describe_user(self):
        print('姓:'+self.last_name+'   名:'+self.first_name)
        
    def greet_user(self):
        print('hi!'+self.last_name+self.first_name+'!')

user1 = User('星','墩墩')
user1.describe_user()
user1.greet_user()

P147

#9-4
class Restaurant():
    
    def __init__(self,restaurant_name,cuisine_type,number_served):
        #初始化属性
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        self.number_served = 0
    
    def describe_restaurant(self):
        print('restaurant name is '+self.restaurant_name+',cuisine type is '
        +self.cuisine_type)
        
    def open_restaurant(self):
        print('Restaurant business as usual!')
        
    def set_number_served(self,number):
        self.number_served = number
        
    def increment_number_served(self,increment_number):
        self.number_served += increment_number

restaurant = Restaurant('马路边边','串串',0)
print('有'+str(restaurant.number_served)+'人在餐馆就餐过')

restaurant.set_number_served (20)
print('有'+str(restaurant.number_served)+'人在餐馆就餐过')

restaurant.increment_number_served (50)
print('有'+str(restaurant.number_served)+'人在餐馆就餐过')


#9-5
print('')
class User():
    def __init__(self,first_name,last_name,login_attempts):
        self.first_name = first_name
        self.last_name = last_name
        self.login_attempts = 0
        
    def describe_user(self):
        print('姓:'+self.last_name+'   名:'+self.first_name)
        
    def greet_user(self):
        print('hi!'+self.last_name+self.first_name+'!')
        
    def increment_login_attempts(self):
        self.login_attempts += 1
        
    def reset_login_attempts(self):
        self.login_attempts = 0
        
user = User('墩墩','星',0)
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
user.increment_login_attempts()
print(user.login_attempts)

user.reset_login_attempts()
print(user.login_attempts)

P153

#9-6(选取继承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 name is '+self.restaurant_name+',cuisine type is '
        +self.cuisine_type)
        
    def open_restaurant(self):
        print('Restaurant business as usual!')
        
class IceCreamStand(Restaurant):
    def __init__(self,restaurant_name,cuisine_type):
        super().__init__(restaurant_name,cuisine_type)
        self.flavors = ['巧克力','草莓','奶油','哈密瓜']
    
    def describe_icecream(self):
        for flavor in self.flavors:
            print('这个冰淇淋的口味是'+flavor)

#创建实例并显示冰淇淋口味
icecream = IceCreamStand('冰淇淋店','冰淇淋')
icecream.describe_icecream()
#随便调用一个看是不是父类中的方法
icecream.open_restaurant()


#9-7(继承9-3的类)
class User():
    def __init__(self,first_name,last_name):
        self.first_name = first_name
        self.last_name = last_name
        
    def describe_user(self):
        print('姓:'+self.last_name+'   名:'+self.first_name)
        
    def greet_user(self):
        print('hi!'+self.last_name+self.first_name+'!')
        
class Admin(User):
    def __init__(self,first_name,last_name):
        super().__init__(first_name,last_name)
        self.privileges = [' can add post',' can delete post',' can ban user']
        
    def show_privileges(self):
        for privilege in self.privileges:
            print(self.last_name+self.first_name+privilege+'!')
            
            
admin = Admin('星','墩墩')
admin.show_privileges()


#9-8
class User():
    def __init__(self,first_name,last_name):
        self.first_name = first_name
        self.last_name = last_name
        
    def describe_user(self):
        print('姓:'+self.last_name+'   名:'+self.first_name)
        
    def greet_user(self):
        print('hi!'+self.last_name+self.first_name+'!')
        
class Privileges():
    def __init__(self):
        self.privileges = [' can add post',' can delete post',' can ban user']

    def show_privileges(self):
        print(self.privileges)
            
class Admin(User):
    def __init__(self,first_name,last_name):
        super().__init__(first_name,last_name)
        self.pvlg = Privileges()
        
user = Admin('星','墩墩')
user.pvlg.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_description_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 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)
        
    def upgrade_battery(self):
        if self.battery_size != 85:
            self.battery_size = 85
        
class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
        self.battery = Battery()
        
my_tesla = ElectricCar('tesla','model s','2016')
my_tesla.battery.get_range()
my_tesla.battery.upgrade_battery()
my_tesla.battery.get_range()

9-10~9-12 略

P160

#9-13 
import collections
#不调用OrderedDict
word = {}
word['list'] = '列表'
word['sum'] = '求和'
word['lower'] = '小写'
word['upper'] = '大写'
for k,v in word.items():
    print(k,v)

print('')
#调用OrderedDict
word1 = collections.OrderedDict()
word1['list'] = '列表'
word1['sum'] = '求和'
word1['lower'] = '小写'
word1['upper'] = '大写'
for k,v in word1.items():
    print(k,v)
    
#9-14
print('')
from random import randint

class Die():
    def __init__(self):
        self.sides = 6
        
    def roll_die(self):
        print(randint(1,6))
        
shaizi = Die()
i = 1
while i <= 10:
    shaizi.roll_die()
    i += 1


print('')
from random import randint

class Die():
    def __init__(self):
        self.sides = 10
        
    def roll_die(self):
        print(randint(1,10))
        
shaizi = Die()
i = 1
while i <= 10:
    shaizi.roll_die()
    i += 1
    
    
print('')
from random import randint

class Die():
    def __init__(self):
        self.sides = 20
        
    def roll_die(self):
        print(randint(1,20))
        
shaizi = Die()
i = 1
while i <= 10:
    shaizi.roll_die()
    i += 1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值