文章目录
- 一、if结构
- 1.1 比较符号
- 1.1.1 使用`==`比较两个数据是否相等:
- 1.1.2 使用`!=`号比较数据是否不相等
- 1.1.3 使用`<`号比较数字大小关系
- 1.1.4 使用`<=`号比较数字大小关系
- 1.1.5 使用`>`号比较数字大小关系
- 1.1.6 使用`>=`号比较数字大小关系
- 1.2 关键字
- 1.2.1 `and`关键字
- 1.2.2 `or`关键字
- 二、if-else结构
- 三、if-elif-else结构
- 四、else语句特别说明
- 五、代码运行方式
有时,我们需要判断某个变量是否符合给定条件,if
语句能判断对象是否符合条件,并根据判断结果进行相应操作。
一、if结构
if 1==1:
print(1==1)
- if语句后,用于判断的语句,称为:条件测试
- 条件测试的结果有且仅有:
True
或False
- if语句以冒号结尾
- 满足if语句后执行的代码块,需要缩进
1.1 比较符号
1.1.1 使用==
比较两个数据是否相等:
#对字符串进行比较
if 'abc' == 'aBC':
print(1)
if 'abc' == 'abc':
print(2)
- 要给字符串加上引号,否则,python将认为abc和aBC是变量
==
用于对比的时候,是识别大小写的。
1.1.2 使用!=
号比较数据是否不相等
if 'abc' != 'aBC':
print(1)
print('test !')
1.1.3 使用<
号比较数字大小关系
if 12 < 13:
print(12)
print('test !')
1.1.4 使用<=
号比较数字大小关系
if 13 <= 13:
print(13)
print('test !')
1.1.5 使用>
号比较数字大小关系
if 14 > 13:
print(14)
print('test !')
1.1.6 使用>=
号比较数字大小关系
if 14 >= 14:
print(14)
print('test !')
1.2 关键字
当我们需要在一个 if
语句中,对比两个或更多的条件,就需要使用关键字来连接多个条件。
1.2.1 and
关键字
and
关键字要求其两端的条件测试的结果都为True,才能通过if语句的判断。
if 12 > 13 and 14 < 15:
print(1)
print(2)
1.2.2 or
关键字
or
关键字,只要两端的条件测试中有一个结果True,则满足条件。
if(2 == 3 or '123' == print('456')):
print('test !')
运行结果:
修改if语句,如下:
#关键字or
if(2 == 2 or '123' == print('456')):
print('test !')
运行结果:
根据两次运行结果,可知:当关键字or
前一个条件测试结果为True,将不再测试后面的条件。
建议:若已知两个条件在代码运行中的大致出现频率,则将出现频率高的条件写到or
关键字前面。
二、if-else结构
if 12 == 13:
print('yes')
#所有不满足if语句条件,都将执行else指定操作
else:
print('no')
- else语句,需要使用冒号结尾
- else语句对应代码块,需要缩进
三、if-elif-else结构
if 12 == 13:
print(1)
elif 12 < 13:
print(2)
else:
print(3)
- elif语句,要用冒号结尾
- elif语句,在if语句后加入其他的条件测试
- elif语句对应的代码块,需要缩进
- 只能有1个if语句、1个else语句,但两者之间可以写多个elif语句
四、else语句特别说明
- 只要不满足
if
和elif
的条件,就能执行else
的代码。 - 一旦有无效甚至恶意的数据,在不满足给定条件后,都会执行
else
对应的代码,使程序产生难以预料的问题。 - else包含了所有不满足条件的情况,导致代码用意表达不清晰
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
#所有不满足条件情况都将进入else代码块
else:
price = 5
print('your admission cost: $' + str(price))
放弃使用else,修改为使用elif:
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
#使用elif,清晰表达出这是对65岁及以上人群的处理情况
elif age >= 65:
price = 5
print('your admission cost: $' + str(price))
并非不能用else。而是需要考虑:用else会不会埋下隐患,会不会表意不清。
五、代码运行方式
if-else
和if-elif-else
的代码结构在运行时,满足了某个条件,并执行完该条件对应代码块后,就会跳出整个结构,执行后续代码。