我一直以为写if还是elif都是一样的,今天没事做了下试验,证明凡是存在的都是合理的。。。。。不会存在无谓的东西。
通过运行下面的代码我可以看出,if…elif的逻辑是,程序先走if,能走就走,走完就不走elif了,走不通的情况才走elif。比如当a=7的时候,符合if下面的>5,运行print(‘大于5’,a),然后就没有然后了,即使也符合elif下面的<8,也是看不见看不见。。
if…if的逻辑是,先走前面的if,走通之后还会再看是否符合第二个if。。,以此类推。当x=7时,符合第一个if下面的>5,所以运行print(‘大于5’,a),然后还符合第二个if下面的<8,再运行print(‘小于8’,a)。。
a=7
if a>5:
print('大于5',a)
elif a<8:
print('小于8',a)
else:
print(a)
print('*'*50)
if a>5:
print('大于5',a)
if a<8:
print('小于8',a)
else:
print(a)
最后再说下总结吧,就是如果是用的if,那么程序会把所有的if都走一遍。
如果用的elif,当遇到符合条件的时候,程序就停止运行了,后面没执行的也不执行了。
有点像贪婪匹配和非贪婪匹配的意思哈