elif其实是else和if两个单词的缩写,意思是否则,如果。
if关键字会对一些命题进行一次判断。如果不满足,而elif存在的话,则会进入第二次命题的判断。
并且每一个elif判断,也会对应一个业务代码块。

10点是我们对于发红包的第一次判断,对应的是if语句。它对应的代码块是发10万红包。
if语句之后,第二次满足条件的机会是11点,这时候就是第一个elif了,当满足了它的条件之后,进入了它对应的代码块。执行发11万的红包逻辑。
第三次机会,对应了第二次的elif,满足了这次的elif的条件之后,会进入它对应的代码块。执行发12万的红包。
如果都错过了呢,就没有红包抢了。不进行处理,或者程序走进else进行说明。

dewei_status = 'hunger'
if dewei_status == 'hunger':
print('Xiaomu invites Dewei to dinner')
elif dewei_status == 'thirsty':
print('xiaomu give dewei some drink')
elif dewei_status == 'sleepy':
print('dewei want to sleep')
else:
print('dewei status is good')
运行结果:
Xiaomu invites Dewei to dinner
比如if语句中有3个elif和一个else,当满足if语句后,进入了if对应的代码块。
当执行完if对应的代码块之后,将不会对接下来的elif和else进行判断。也不会进入到它们对应的代码块。
而是继续执行条件语句之外的程序。
或者if没有满足,进入其中的一个elif中,当满足条件,执行相对的代码块,之后的条件判断和对应的代码块也不会执行了。

#coding:utf-8
number = 20
if number > 10:
print('number的值大于10')
elif 5 < number <= 10:
print('number的值在5和10之间')
elif 0 < number <= 5:
print('number的值是1~5')
else:
print('number的值是0或者负数')
print('finish')
#列表
users = [
('dewei',33,90),
('xiaomu',10,99),
('xiaoming',18,100)
]
xiaoming = ['xiaoming',19,90]
if users[0][0] == xiaoming[0]:
xiaoming[0] = '%s_new' % xiaoming[0]
users.append(xiaoming)
elif users[1][0] == xiaoming[0]:
xiaoming[0] = '%s_new' % xiaoming[0]
users.append(xiaoming)
elif users[2][0] == xiaoming[0]:
xiaoming[0] = '%s_new' % xiaoming[0]
users.append(xiaoming)
else:
users.append(xiaoming)
print(users)
# 字典
users ={
'dewei':{'age':33,'count':90},
'xiaomu':{'age':10,'count':99},
'xiaoming':{'age':18,'count':100}
}
if xiaoming[0] in users:
xiaoming[0] = '%s_new' % xiaoming[0]
else:
users[xiaoming[0]]={'age':xiaoming[1],'count':xiaoming[2]}
print(users)
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/python_if/bin/python /Users/llq/PycharmProjects/pythonlearn/python_if/if_elif.py
number的值大于10
finish
[('dewei', 33, 90), ('xiaomu', 10, 99), ('xiaoming', 18, 100), ['xiaoming_new', 19, 90]]
{'dewei': {'age': 33, 'count': 90}, 'xiaomu': {'age': 10, 'count': 99}, 'xiaoming': {'age': 18, 'count': 100}, 'xiaoming_new': {'age': 19, 'count': 90}}
进程已结束,退出代码为 0
代码解析:

一行一行解,在三个箭头处 print(xiaoming) 看一下。前面的代码把列表xiaoming的内容给改了。xiaoming[0]='xiaoming_new'。
没有走字典这个例子的代码的if对应的代码块,走的是else对应的代码块啊。