鱼C论坛

 找回密码
 立即注册
查看: 1219|回复: 2

[已解决]求助,不太理解为什么跳过if语句了

[复制链接]
发表于 2022-4-2 09:01:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
研究半天不太明白,求大哥们解惑

类里面添加属性默认值self.odometer_reading = 0

然后添加了undate_odometer方法,设定了一个条件

当update_odometer的参数mileage大于默认值时,则self.odometer_reading = mileage

当update_odometer的参数mileage小于默认值时,则打印print语句提示

但是实例中用update_odometer给参数为负数,运行后也会输出负数的值。

怎样才可能让条件能够正常判断?

  1. class Car():
  2.     """一次模拟汽车的简单尝试"""

  3.     def __init__(self,make,model,year):
  4.         """初始化描述汽车的属性"""
  5.         self.make = make
  6.         self.model = model
  7.         self.year = year
  8.         self.odometer_reading = 0

  9.     def get_descriptive_name(self):
  10.         """返回整洁的描述性信息"""
  11.         print(f'品牌:{self.make.title()}\n型号:{self.model.title()}\n上市时间:{self.year}')

  12.     def update_odometer(self,mileage):
  13.         """"
  14.         将里程表读数设置为指定的值
  15.         禁止将里程表读数回调
  16.         """
  17.         self.odometer_reading = mileage
  18.         if mileage >= self.odometer_reading:
  19.             self.odometer_reading = mileage
  20.         else:
  21.             print('禁止回调里程数!!')

  22.     def read_odometer(self):
  23.         print(f"里程数:{self.odometer_reading} Km")
  24.         
  25. my_new_car = Car('audi','a4','2016')
  26. my_new_car.get_descriptive_name()
  27. my_new_car.update_odometer(-10)
  28. my_new_car.read_odometer()
复制代码
最佳答案
2022-4-2 09:03:52
本帖最后由 isdkz 于 2022-4-2 09:05 编辑

  1. class Car():
  2.     """一次模拟汽车的简单尝试"""

  3.     def __init__(self,make,model,year):
  4.         """初始化描述汽车的属性"""
  5.         self.make = make
  6.         self.model = model
  7.         self.year = year
  8.         self.odometer_reading = 0

  9.     def get_descriptive_name(self):
  10.         """返回整洁的描述性信息"""
  11.         print(f'品牌:{self.make.title()}\n型号:{self.model.title()}\n上市时间:{self.year}')

  12.     def update_odometer(self,mileage):
  13.         """"
  14.         将里程表读数设置为指定的值
  15.         禁止将里程表读数回调
  16.         """
  17.         #      self.odometer_reading = mileage                这一句在 if 外面,无论如何也会执行,所以不要这句就可以了
  18.         if mileage >= self.odometer_reading:
  19.             self.odometer_reading = mileage
  20.         else:
  21.             print('禁止回调里程数!!')

  22.     def read_odometer(self):
  23.         print(f"里程数:{self.odometer_reading} Km")
  24.         
  25. my_new_car = Car('audi','a4','2016')
  26. my_new_car.get_descriptive_name()
  27. my_new_car.update_odometer(-10)
  28. my_new_car.read_odometer()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-2 09:03:52 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2022-4-2 09:05 编辑

  1. class Car():
  2.     """一次模拟汽车的简单尝试"""

  3.     def __init__(self,make,model,year):
  4.         """初始化描述汽车的属性"""
  5.         self.make = make
  6.         self.model = model
  7.         self.year = year
  8.         self.odometer_reading = 0

  9.     def get_descriptive_name(self):
  10.         """返回整洁的描述性信息"""
  11.         print(f'品牌:{self.make.title()}\n型号:{self.model.title()}\n上市时间:{self.year}')

  12.     def update_odometer(self,mileage):
  13.         """"
  14.         将里程表读数设置为指定的值
  15.         禁止将里程表读数回调
  16.         """
  17.         #      self.odometer_reading = mileage                这一句在 if 外面,无论如何也会执行,所以不要这句就可以了
  18.         if mileage >= self.odometer_reading:
  19.             self.odometer_reading = mileage
  20.         else:
  21.             print('禁止回调里程数!!')

  22.     def read_odometer(self):
  23.         print(f"里程数:{self.odometer_reading} Km")
  24.         
  25. my_new_car = Car('audi','a4','2016')
  26. my_new_car.get_descriptive_name()
  27. my_new_car.update_odometer(-10)
  28. my_new_car.read_odometer()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-2 09:06:59 | 显示全部楼层

谢谢,还是不细心犯的错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 06:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表