除了9.1的代码可以运行的起来,其他的我没有试过,而且有些代码是简写,我打一边单纯是为了理解。
这是我看python编程:从入门到实践的笔记,这本书上没有和课后练习的笔记,动手试试那里的代码为本人原创,怕到时有人有我盗书咋的咋的,虽然我的文章基本没什么人看。
#car.py
class Car():
'''一次模拟汽车的简单测试'''
def __init__(self,make,model,year):
'''初始化描述汽车的属性'''
self.make = make
self.model = model
self.year = year
def get_descriptive_name(self):
'''返回整洁的描叙性信息'''
long_name = str(self.year) + ' '+self.make+'\
'+self.model
return long_name.title()
my_new_car = Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
-------------------------------------------------------
类 汽车():
定义 初始化(自己,品牌,型号,年份):
自己.品牌 = 品牌
自己.型号 = 型号
自己.年份 = 年份
定义 获得描述性名称(自己):
长名称 = 串(自己.年份)+' '+自己.品牌+'\
'+自己.型号
返回 长名称.标题()
我的新的汽车 = 汽车('奥迪','a4',2016)
打印(我的新的汽车.获得描叙性名称())
我觉得我翻译的不标准,每个人的理解都不太一样,我之前以为作者的model想表达的是型号,结果是车的模型。。。emmm反正只是个例子无需在意,用出来的就行。
class Car():
def __init__(self,make,model,year):
'''初始化描述汽车的属性'''
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
--snip--
def read_odometer(self):
'''打印一条指出汽车里程的消息'''
print('This car has '+str(self.odometer_reading)
+' miles on it.')
'''这辆车行驶了多少英里'''
my_new_car = Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
---------------------------------------------------------
__init__初始化
self自己,(自己的)通常的行为方式,本来面目,惯常心态。。。
make v.制造,做。n.品牌,型号。
model n.模型,样式,型
odometer reading里程表读数
get descriptive name获取描叙性名称
snip剪,剪断,剪开
read odometer读取里程表
miles英里
后半部分的翻译可以注释掉
这一步是把里程表读数设置为23
class Car():
--snip--
my_new_car = Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading = 23
my_new_car.read_odometer()
---------------------------------------------------------
__init__初始化
self自己,(自己的)通常的行为方式,本来面目,惯常心态。。。
make v.制造,做。n.品牌,型号。
model n.模型,样式,型
odometer reading里程表读数
get descriptive name获取描叙性名称
snip剪,剪断,剪开
read odometer读取里程表
miles英里
这种方可可以不需要直接访问属性就可以将值传递给一个方法。
class Car():
--snip--
def update_odometer(self,mileage):
'''将里程表读数设置为指定的值'''
self.odometer_reading = mileage
my_new_car = Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23)
my_new_car.read_odometer()
---------------------------------------------------------
__init__初始化
self自己,(自己的)通常的行为方式,本来面目,惯常心态。。。
make v.制造,做。n.品牌,型号。
model n.模型,样式,型
odometer reading里程表读数
get descriptive name获取描叙性名称
snip剪,剪断,剪开
read odometer读取里程表
miles英里
mileage里程
update odometer 更新里程表
对方法update_odometer()进行扩展,使其在修改里程表读数时做些额外的工作。下面来添加一些逻辑,禁止任何人将里程表读数往回调:
class Car():
--snip--
def update_odometer(self,mileage):
'''
将里程表读数设置为指定的值
禁止将里程表读数往回调
'''
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print('You can`t roll back an odometer!')
'''你不能退回里程表'''
---------------------------------------------------------
__init__初始化
self自己,(自己的)通常的行为方式,本来面目,惯常心态。。。
make v.制造,做。n.品牌,型号。
model n.模型,样式,型
odometer reading里程表读数
get descriptive name获取描叙性名称
snip剪,剪断,剪开
read odometer读取里程表
miles英里
mileage里程
update odometer 更新里程表
3.通过方法堆属性的值进行递增
class Car():
--snip--
def update_odometer(self,mileage):
--snip--
def increment_odometer(self,miles):
'''将里程表读数增加指定的量'''
self.odometer_reading += miles
my_used_car = Car('subaru','outback',2013)
print(my_used_car.get_descriptive_name())
my_used_car.update_odometer(23500)
my_used_car.read_odometer()
my_used_car.increment_odometer(100)
my_used_car.read_odometer()
---------------------------------------------------------
__init__初始化
self自己,(自己的)通常的行为方式,本来面目,惯常心态。。。
make v.制造,做。n.品牌,型号。
model n.模型,样式,型
odometer reading里程表读数
get descriptive name获取描叙性名称
snip剪,剪断,剪开
read odometer读取里程表
miles英里
mileage里程
update odometer 更新里程表
increment_odometer里程表增量
class Car():
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_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
my_used_car = Car('subaru','outback',2013)
print(my_used_car.get_descriptive_name())
my_used_car.update_odometer(23500)
my_used_car.read_odometer()
my_used_car.increment_odometer(100)
my_used_car.read_odometer()
##---------------------------------------------------------
##__init__初始化
##self自己,(自己的)通常的行为方式,本来面目,惯常心态。。。
##make v.制造,做。n.品牌,型号。
##model n.模型,样式,型
##odometer reading里程表读数
##get descriptive name获取描叙性名称
##snip剪,剪断,剪开
##read odometer读取里程表
##miles英里
##mileage里程
##update odometer 更新里程表
##increment_odometer里程表增量
class Restaurant():
def __init__(self,restaurant_name,cuisine_type):
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
self.number_served = 0
def describe_restaurant(self):
print('My restaurant`s name is '\
+self.restaurant_name.title())
print('My restaurant makes '+self.cuisine_type)
def open_restaurant(self):
print("The "+self.restaurant_name.title()\
+" restaurant is open.")
def set_number_served(self,number_served):
self.number_served = number_served
print('number_served: '+str(self.number_served))
def increment_number_served(self,people):
self.number_served += people
print('number_served: '+str(self.number_served))
my_restaurant = Restaurant('yummy','Western-style food')
my_restaurant.describe_restaurant()
my_restaurant.open_restaurant()
my_restaurant.set_number_served(15)
my_restaurant.increment_number_served(20)
###---------------------------------------------------------------
###number_served服务人数
###set_number_served设置服务人数
###increment_number_served服务人数增加
class User():
def __init__(user,first_name,last_name,gender,age,birthday):
user.first_name= first_name
user.last_name = last_name
user.gender = gender
user.age = age
user.birthday = birthday
user.login_attempts = 0
def describe_user(user):
print("First name: "+user.first_name.title())
print("Last name: "+user.last_name.title())
print("Gender: "+user.gender)
print("Age:"+str(user.age))
print("Your birthday: "+str(user.birthday))
def greet_user(user):
print("Hello "+user.first_name.title(),'Welcome to the world \
of Python.')
def increment_login_attempts(user,login_attempts):
user.login_attempts = login_attempts
user.login_attempts += 1
print("Login times: "+str(user.login_attempts))
def reset_login_attempts(user):
user.login_attempts = 0
print("The number of logins has been reset! "\
+str(user.login_attempts))
user_profile = User('angel','devil','girl','16','9.2')
user_profile.greet_user()
user_profile.describe_user()
for i in range(5):
user_profile.increment_login_attempts(i)
user_profile.reset_login_attempts()
#--------------------------------------------------------------
#login attempts登陆尝试
#increment login attempts增加登录尝试次数
#reset login attempts重置登陆尝试
#login times登录次数
#The number of logins has been reset!已经充值登录次数
这些是我理解做出来的,如果理解错误那就不对了,仅供参考