python学习笔记(五)if语句
1、布尔表达式
每条if语句的核心都是一个值为True或False的表达式,也被称为条件测试。
通常情况下,简单的布尔表达式都是比较字符串是否相等,比较数字的大小,或者检查特定的值是否包含在列表中等等。下面主要看样例。
A 检查字符串是否相等
language = 'python' #一个等号是赋值
#布尔表达式套上小括号方便区分和理解
flag_0 = (language == 'python') #两个等号是检查是否相等
flag_1 = (language == 'Python') #大小写不同的两个值在python中被视为不相等
print(flag_0)
print(flag_1)
运行结果为:
True
False
B 检查字符串是否不相等
language = 'python'
flag_0 = (language != 'python') #注意不等号(!=)
flag_1 = (language != 'Python')
print(flag_0)
print(flag_1)
运行结果为:
False
True
C 比较数字
number = 100
print(number == 100) # 等于
print(number != 100) # 不等于
print(number < 100) # 小于
print(number <= 100) # 小于等于
print(number > 100) # 大于
print(number >= 100) # 大于等于
运行结果为:
True
False
False
True
False
True
D 检查值是否在列表中
languages = ['c', 'python', 'java', 'ruby']
flag_0 = ('c' in languages) #注意“in”
flag_1 = ('c++' in languages)
print(flag_0)
print(flag_1)
运行结果为:
True
False
E 检查值是否不在列表中
languages = ['c', 'python', 'java', 'ruby']
flag_0 = ('c' not in languages) #注意“not in”
flag_1 = ('c++' not in languages)
print(flag_0)
print(flag_1)
运行结果为:
False
True
F 检查列表是否为空
languages_0 = ['c', 'python', 'java', 'ruby']
if languages_0:
print("Not empty!")
else:
print("empty!")
print()
languages_1 = []
if languages_1:
print("Not empty!")
else:
print("empty!")
运行结果为:
Not empty!
empty!
但是有时候,我们需要同时检查多个条件,一个一个检查会显得十分麻烦,这时,python为我们提供了and和or两个关键字。通过这两个关键字我们可以将多个条件连接起来构成布尔表达式,但此时需要注意小括号的使用。
and:所有条件都为True时,表达式为True,大于等于一个条件为False,表达式为False
or:所有条件都为False时,表达式为False,大于等于一个条件为True,表达式为True
language = 'python'
number = 100
languages = ['c', 'python', 'java', 'ruby']
flag_0 = ((language == 'python') and (number == 100) and ('c' in languages))
print(flag_0)
flag_1 = ((language == 'python') and (number == 100) and ('c' not in languages))
print(flag_1)
flag_2 = ((language != 'python') or (number != 100) or ('c' not in languages))
print(flag_2)
flag_3 = ((language != 'python') or (number != 100) or ('c' in languages))
print(flag_3)
flag_4 = ((language == 'python') or ((number != 100) and ('c' in languages)))
print(flag_4)
运行结果为:
True
False
False
True
True
注意这五个例子中小括号的运用,也许有人觉得有一些没有必要,但是相信我,养成这个习惯绝对是很有好处的。
2、if条件句
if条件句有很多种,我们由简单到复杂来看。
if
if conditional_test:
do something
冒号和缩进的含义在之前的for循环中已经提过,注意这里的 contional_test 就是布尔表达式。
language = 'python'
if (language == 'python'):
print("hhhh!")
print("I like python!")
print("Over!")
print()
if (language != 'python'):
print("hhhh!")
print("I like python!")
print("Over!")
运行结果为:
hhhh!
I like python!
Over!
Over!
if-else
if-else语句块类似于if语句,但是else语句可以让我们设置条件测试未通过时要执行的操作。
if conditional_test:
do something
else:
do something
# 这两个do something必执行一个且只能执行一个
language = 'python'
if (language == 'python'):
print("hhhh!")
print("I like python!")
else:
print("hhhh!")
print("I like python!")
print("Over!")
print()
if (language != 'python'):
print("hhhh!")
print("I like python!")
else:
print("hhhh!")
print("I like python, too!")
print("Over!")
运行结果为:
hhhh!
I like python!
Over!
hhhh!
I like python, too!
Over!
if-elif-else
if-elif-else语句块适用于多个情形需要考虑的情况,其中的
if有且只有一个,
elif可以有多个,也可以省略,
else只有一个,也可以省略。
language = 'python'
if (language == 'python'):
print("I like python!")
elif (language == 'c'):
print("I like c!")
elif (language == 'java'):
print("I like java!")
elif (language == 'ruby'):
print("I like ruby")
else:
print("I like nothing!") #当上面所有的条件都不满足时才执行else中的操作
print("Over!")
运行结果为:
I like python!
Over!
if条件句和for循环结合起来非常便于我们动态更新列表,但是在这里就不详细举例了。后面期待用python写一个小游戏,到时候配合具体的例子再一起学习吧。