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写一个小游戏,到时候配合具体的例子再一起学习吧。