前言:这个博客是为了记录我的学习过程也是为了能够有一种动力学习python,欢迎大家监督更新此博客。
(更新:2023年2月17日)
- 本博客所书写的文字类似于自述性的文字,官方话语较少,也有可能是自言自语的话,不过也比较真实记录学习过程。
第五节:if 语句
在程序中,重要的不只是循环,在继续深入编写程序的时候,程序的判断语句在整个程序中地位也是非常重的
判断的表达式
等于 | 大于 | 小于 | 不等于 | 大于或等于 | 小于或等于 | 和 | 或 |
---|---|---|---|---|---|---|---|
== | > | < | != | >= | <= | and | or |
一、简单匹配判断
1.if…else…
在程序中,例如你存储了一个列表,但是列表里面有一些特殊的元素需要大写输出,列表里面存储的为小写,现在就进行简单的匹配判断,找出我们需要的来进行大写,其他原封不动输出小写:
# 创建一个列表
one = ['汽车', 'huang', 'two', 'xin', 'six']
for ones in one: # 进行列表循环
if ones == 'huang': # 匹配是否为huang,如果是则执行打印,不是就执行else下程序
print(ones.upper())
else:
print(ones)
程序中,除了我们之前学到的循环,多出了两个:if 、else两个函数参数,这里解释一下,if表示进行后面的表达式对比( ones == ‘huang’—这就是表达式),如果表达式的结果为真,就是表达式成立则执行if下面的程序,如果表达式不成立,则无条件执行else下面的程序,下面的huang匹配上了,所有huang被全部大写输出了:
# 输出的结果为:
汽车
HUANG
two
xin
six
要是我说的不清楚,这是官方解释:每条if 语句的核心都是一个值为True 或False 的表达式,这种表达式称为条件 测试 。Python根据条件测试的值为True 还是False 来决定是否执行if 语句中的 代码。如果条件测试的值为True ,Python就执行紧跟在if 语句后面的代码;如果 为False ,Python就忽略这些代码。
这种判断机制不仅可以判断字母,中文也可以,数字也可以,只要表达式成立即可,大家灵活多变,例如现在的if判断语句是区分大小写的,如果你在判断时不想区分大小写怎么办呢很简单:
# 创建一个列表
one = ['汽车', 'Huang', 'two', 'xin', 'six']
for ones in one: # 进行列表循环
if ones.lower == 'huang': # 把要匹配的元素全部转成小写是否为huang,如果是则执行打印,不是就执行else下程序
print(ones.upper())
else:
print(ones)
- 大家对比一下有那些不同,在判断时多了 .lower,这种方法同样适用于 .upper/.title,另外注意这种转换不会对中文有影响,输出的结果还是一样的,这样就可以Huang==huang。
# 输出的结果为:
汽车
HUANG
two
xin
six
二、多条件判断
1.and、or
要检查是否两个条件都为True ,可使用关键字and 将两个条件测试合而为 一。如果每个测试都通过了,整个表达式就为True ;如果至少一个测试没有 通过,整个表达式就为False。 True为真;False为假
age = 18
age1 = 23
if age > 20 and age1 > 22:
print("你们可以结婚啦!")
else:
print("年纪不符合结婚年纪!")
- 在上面的表达式中age1是已经大于22岁了,但是由于age小于20岁,所以整个表达式为假,不会执行if下面的程序,必须是and的前后表达式都为真才能执行:
# 输出结果为:
年纪不符合结婚年纪!
关键字or 也能够让你检查多个条件,但只要至少一个条件满足,就能通过整个 测试。仅当两个测试都没有通过时,使用or 的表达式才为False
age = 18
age1 = 23
if age > 20 or age1 > 22:
print("你们可以结婚啦!")
else:
print("年纪不符合结婚年纪!")
- 这里的结果就跟上面不一样了,这里使用了or,所以对于if来说表达式为真:
# 输出结果为:
你们可以结婚啦!
空判断
检查列表等是否为空
这个是一个特殊的if语句,就是如果列表不为空就会执行if下面的程序,如果为空就执行其他:
age = ['18']
if age:
print(age)
else:
print("你没有年纪在列表内")
- 此时列表不为空,所以执行if下面的程序:
# 输出结果为:
['18']
- 把列表的18删除之后,执行else下面的语句:
# 输出结果为:
你没有年纪在列表内
- 以上就是简单的空判断语句。
三、多重判断
if…elif…else
在晨旭中,有时候可能会出现不同的条件触发不同的程序,上面的单独if…else就不满足这个条件使用了,然后python支持elif多重匹配,匹配原则为:顺序匹配,匹配上一个就不会再去匹配下面的判断语句。
age = 20
if age:
if age < 12:
print("你的年纪不到12岁可以免门票哦!")
elif age < 18:
print("你的年纪不到18岁可以享受半价门票!")
elif age < 60:
print("你已经是成年人了,买全票去!")
elif age >= 60:
print("你已经有60岁啦,免门票!")
- 这个程序就可以根据不同的年纪输出不同的结果,大家可以修改一下年纪,输出的结果都不一样。注意if语句可以不适用else结尾。
# 输出结果为:
你已经是成年人了,买全票去!
- 在程序中,elif是可以无限使用的。
这一节的内容比较少,也比较好记,不过重要程度很高哦,因为所有的程序都离不开判断语句的,溜溜球,下一节见