Python编写Car类刹车功能异常:brake方法未正确递减速度
解决Car类刹车功能的错误及输出不符合预期问题
核心问题分析
- 刹车方法语法错误:
brake方法中的self.__speed = -=5是非法赋值语句,实际运行时会直接将__speed设置为-5(而非在原有速度基础上递减5),这是导致所有刹车输出均为-5的直接原因。 - 刹车循环执行顺序错误:原代码先调用
brake再打印速度,而你预期的是先打印刹车操作前的速度状态,再执行刹车动作。 - 加速次数不匹配:原代码加速5次后速度达到25,但你需要刹车前初始速度为20,因此加速次数需调整为4次。
- 缺少速度下限限制:未处理速度为0时继续刹车的边界情况,可能导致速度变为负数。
修正后的代码
Car类定义
class Car: def __init__(self, __year_model, __make): self.__year_model = __year_model self.__make = __make self.__speed = 0 def accelerate(self): self.__speed += 5 def brake(self): # 修正语法错误,同时确保速度不低于0 self.__speed = max(self.__speed - 5, 0) def get_speed(self): return self.__speed
主程序代码
from car import Car my_car = Car("Corvette", 2022) # 加速4次,使初始速度达到20 for a in range(4): my_car.accelerate() print(f"accelerate {a}: {my_car.get_speed()}") print() # 先打印当前速度(对应刹车操作的状态标识),再执行刹车 for x in range(5): print(f"brake {x}: {my_car.get_speed()}") my_car.brake()
修正后的输出
accelerate 0: 5 accelerate 1: 10 accelerate 2: 15 accelerate 3: 20 brake 0: 20 brake 1: 15 brake 2: 10 brake 3: 5 brake 4: 0
内容的提问来源于stack exchange,提问作者user19293076
相关产品推荐
相关产品推荐

