为了账号安全,请及时绑定邮箱和手机立即绑定

关于连续使用if的问题 if ... if...

经常在例子中看到连续使用两个if, 如下图中,我理解的这个例子要表达的意思是if... elif...else...,但是为什么没有这样用,最后的return 0应该是else条件下的,按照例子中的写法,难道不是不管x与y关系如何,都会在执行完两个if后return 0 吗?

正在回答

3 回答

我之前也困惑过,然后找到的原因是:在python中执行到return语句时,会退出函数,return之后的语句不再执行(将return语句放在try语句块中例外)。所以对应这里的代码,逻辑上就是前两个return放到了if语句中,当第一个if条件满足时返回-1结束函数,不满足时不会执行return;然后判断第二个if语句,同理条件满足则返回1结束函数,不成立则执行最后一个return语句返回0.

2 回复 有任何疑惑可以回复我~

顶一个,我也很疑惑这个问题

1 回复 有任何疑惑可以回复我~


def cmp_ignore_case(s1, s2):
    u1=s1.upper()
    u2=s2.upper()
    if u1<u2:  
        return -1 
    if u1>u2: #
        return 1
    return 0

print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)

 程序的步骤是:

1.给u1,u2赋值

2. 检测,如果u1<u2, return -1, 程序结束,不会运行后续代码

3. 在检测到u1<u2 False 的基础上,检测,如果u1>u2, return 1, 程序结束,不会运行后续代码。

4.在检测到u1<u2 False, 并且u1>u2 False的基础上,return 0。


1 回复 有任何疑惑可以回复我~
#1

小御 提问者

按照c语言的逻辑来理解的话,最后的return 0不会管前面的if语句,不管if执不执行都会执行return 0语句,难道python不一样吗
2017-09-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

关于连续使用if的问题 if ... if...

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信