if + else还有不包括在其中的其他选项吗?

if + else还有不包括在其中的其他选项吗?

class Car(object):
# Car类的基本车型设置,列表形式
       description = ['大众', '广本', '沃尔沃', '']
# 重写该类的构造方法,并将参数l、w、h、brand赋值给实例对象属性
       def __init__(self, l, w, h, brand):
               self.L = l
               self.W = w
               self.H = h
               self.brand = brand
# 自定义该类的基本车型检索方法
       def modify_des(self):
               if self.brand in self.description:
                       return self.brand
               else:
                       return '请输入您的车辆描述'
# 自定义静态方法 提示用户:‘已完成车辆基本参数信息的录入!’
       def basic_parameters(self):
               print('已完成车辆基本参数信息的录入!')
# 自定义类方法 根据用户车辆的品牌给出相应的合理保养建议
       def upkeep(self, desc):
               if desc in self.description:
                       print('根据汽车保养的相关经验,{}品牌的车应于5000km/次的频率进行专业性保养'.format(desc))
               else:
                       print('非常抱歉!{}品牌不在我们的保养范围内'.format(desc))

if __name__=='__main__':
       car_1 = Car(4.2, 1.8, 1.5, '')
# 调用实例方法:basic_parameters()
       car_1.basic_parameters()
# 利用if语句,调用modify_des()以判断Car的类属性description是否存在
       # 若if判断条件成立 则调用类方法upkeep()并将对应实例的brand属性传递给参数desc
       if car_1.modify_des():
               car_1.upkeep(car_1.brand)
       # 当if语句的判断条件不成立时,打印输出并提示用户:‘请正确填写相关的车辆信息’
       else:
               print('请正确填写相关的车辆信息')
       car_2 = Car(4.2, 1.8, 1.5, '保时捷')

http://img1.sycdn.imooc.com//climg/5cd2d42100018e8309220366.jpg只有当Car_1最后一个参数不传进去的时候,才会执行这条else语句。不是很明白为什么这条else语句还可以被执行。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2019-05-09 09:58:28

同学,你好,在python中,空序列返回值为False,因为传入的brand参数是空值,在调用car_1.modify_des()函数时返回空值,if条件判断不成立,因此会执行else语句。

例:

# 空序列:空字符串  空列表  空元组  空字典
print(bool(''))    # False
print(bool('a'))   # True
print(bool([]))    # False

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 qq_慕娘5109606 #1
    car_1.modify_des()为什么会返回否?它里面是else是返回一个字符串啊,非空字符串应该对呀true啊。
    2019-05-22 12:05:16
  • 提问者 qq_慕娘5109606 #2
    car_1.modify_des()为什么会返回否?它里面是else是返回一个字符串啊,非空字符串应该对呀true啊。
    2019-05-22 12:05:17
  • 好帮手慕美 回复 提问者 qq_慕娘5109606 #3
    同学,你好,在调用modify_des()时,同学传入的brand的值为空字符串,if条件成立会返回self.brand的值,此时self.brand值为空字符串,if car_1.modify_des():条件是不成立的,因此会执行else语句
    2019-05-22 13:40:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师