条件判断
在 Python 中,条件判断语句总共有三种表现形式, 我们从最基本的单向判断:if 语句开始。
单向判断 if
单向判断:if 代表什么呢?你会发现, 上面的故事中, 有一个如果……就。那么,如果我们要用代码来实现出来的话,就可以用条件判断语句中的单向判断:if 来实现。
# 为钱包赋值
money = 1000
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
if money>=1000:
# 结果:显示‘你去吃日料’的结果
print('金刚狼带凤凰女去吃日料') #金刚狼带凤凰女去吃日料
那么,这段代码是如何实现的呢?
首先,第一行代码,用“=”对当前情况进行赋值:将钱包 1000 赋值给变量 money。
第二步,确定 if 条件: 如果钱包 money 的值>=1000, 就执行冒号后的下一行命令。
第三步,用 print()命令打印出结果, 你去吃日料吧,带上钱,带上女朋友。
在这里,你会发现,在 if 语句的冒号后面,print()语句的前面,出现了几个空格,这又是为什么呢?
在编程武林中,空格不叫空格,而是叫缩进。就如同我们写报告一样,每段开始都要空两格。
对于 Python 而言,缩进是一种语法规则,它会帮助 Python 更好的分清代码结构与层次,计算机更好的执行 Python 代码。【注:缩进是四个空格或一个 Tab 键,且Tab 键和四个空格不能混用,千万注意!千万注意!】
在 if 条件语句中,缩进是不需要手动按空格的。当你用英文输入法后按回车,我们的开发工具(用来编写 Python 代码的程序)为了方便大家编程,会自动实现下一行代码,向右缩进的功能。
此时,被缩进的所有内容被称为 if 语句内的代码块。这就表示: 如果满足 if 条件,计算机就会执行 if 语句内的代码块。(缩进的所有内容)
计算机是一步一步往下执行代码的。所以,当第一行赋值语句不满足 if 语句条件时,Python 就会这么思考:条件不满足,无法执行 if 语句内的代码块,从而直接跳过。
双向判断 if—else
Python 提供了 if…else…语句,让我们有了另一种选择。如果…不满足,就…
if…else…其实就是二选一,满足条件执行 if 里面的代码块,不满条件执行 else 代码块。
# 赋值语句:为体重赋值
weight = 98
# 条件:满足体重超过90(包含90)
if weight>=90:
# 结果:显示‘跑步’的结果
print('她就每天去跑步')
# 条件:当赋值不满足if条件时,执行else下的命令
else:
# 结果:显示‘散步’的结果
print('她就每天去散步') #她就每天去跑步
多向判断 if—elif—else
在判断 3 个和 3 个以上的条件是,我们就需要使用 Python 中if…elif…else…语句。
# 为钱包赋值
money = 999
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
if money>=1000:
print('金刚狼带凤凰女去吃日料')
# 条件:如果有800-1000块钱之间(包含800块)
elif money>=800:
print('金刚狼带凤凰女去吃披萨')
#不满足条件
else:
print('金刚狼带凤凰女去吃KFC') #金刚狼带凤凰女去吃披萨
第一步,第一行赋值,会自上而下的顺序挨个试一遍,看自己满足哪个条件。
第二步,满足哪个条件,就执行哪个条件里面对应的代码块,不满足条件就继续往后试,试出结果为止。
elif 与 if 本质一样,也就是其他条件的意思, elif 后面直接写条件。
if 嵌套
if 嵌套使用的场景是:在满足基础条件的情况下,在观察是否满足其他额外条件。
if 中包含了代码块1,else 中包含了代码块2,这种嵌套逻辑该如何理解呢?
contribution=860
if contribution>=600:
print('特种作战人员')
if contribution>=800:
print('王者')
else:
print('黄金')
else:
print('普通作战人员')
if contribution>400:
print('白银')
else:
print('青铜')
print('结束') # 特种作战人员
王者
结束
计算机执行的顺序就是:
(1)先给 contribution 赋值。
(2)因为 if 与 else 是二选一的关系, if 和 else 中的代码只会执行一个,要么执行代码块1,要么执行代码块2; contribution=860 满足if(contribution>=600)的条件,就进入代码块1中进行执行,执行 print(‘特种作战人员’)。
(3)进入到代码块1, contribution=860去尝试代码块1中的条件,满足 contribution>800的条件,只能去执行代码块1中的 if,执行 print(‘王者’)。
(4)执行 print(‘结束’)。
if 条件判断总结