Python|Python Learning-条件控制语句

Python|Python Learning-条件控制语句
文章图片
Python的条件控制语句-if语句,通过判断条件值,而决定是否执行代码块

if True: do()

if表示如果,即,如果条件成立,则执行相应代码
那什么情况下条件是成立的呢?if后面通常是一个表达式,一个可以返回真假值的表达式,这种表达式被称为条件测试,也叫布尔表达式。布尔表达式有两个值,一个是True,表示真,一个是False,表示假。当返回的值是True时,则条件是成立的,而False情况下是不成立。也就是说,只有当if后面的返回值是True时,才会执行代码块do()
注:do()是什么先不用关注,那是临时写的一个用来占位的句子,没有任何意义,如果写进编辑器里还会报错,重在理解
布尔值
布尔值是一个逻辑值,只有True(真)和False(假)。另外,数值0表示False,非0表示True,一般用1表示True
通过比较运算符返回布尔值
例:
# 这是个批萨 food = 'pizza' # 判断food是否等于'pizza' food == 'pizza'

==运算符用来比较两个对象是否相等
将上面两行代码在Python的IDLE中输出,结果如下:
>>> food = 'pizza' >>> food == 'pizza' True

可以看出,因为food被赋值为'pizza',所以它等于'pizza',因此==判断这个结果是相等的,所以返回了True
如果将food的值改为'apple',再看结果:
>>> food = 'apple' >>> food == 'pizza' False

因此food不等于'pizza',所以返回了False
在比判断字符串是否相等的时候,字母的大小写会影响结果
>>> food = 'pizza' >>> food == 'Pizza' False

可以判断两个值是否相等,同样可以判断两个值是否不相等
>>> food = 'apple' >>> food != 'pizza' True

!=运算符表示不相等的意思,即判断两值是否不相等,如果不相等返回True,如果相等,则返回False。这里因为food确实是不等于'pizza',所以返回了True
比较数字的时候,会判断大小,常用的运算符有
  • >大于
  • <小于
  • >=大于等于
  • <=小于等于
例:
>>> price = 19# 价格,19元 >>> price < 21 True >>> price > 21 False >>> price <= 21 True >>> price >= 21 False

上面说的都是两值之间的比较,如果要同时比较三个值呢?或者更多?比如判断西瓜当前的市场价是否在10元/kg~15元/kg的范围内
>>> watermelon_price = 13# 假设现在西瓜13元/kg >>> watermelon_price >= 10 and watermelon_price <= 15 True

and关键字可以将多个条件表达式连在一起,只有在and左右的条件表达式都为True时才会返回True,否则返回False
另一个例子,当西瓜单价小于2元/kg或者大于20元/kg的时候,说明要么西瓜质量不好,要么太贵,如何筛选出这个结果呢?
>>> watermelon_price = 21# 假设现在西瓜21元/kg >>> watermelon_price < 2 or watermelon_price > 20 True

or关键字表示或的意思,即多个条件表达式中,只要有一个成立,就可以返回Ture,如果都不成立才会返回False
条件表达式用在列表中的时候,一般是判断某个元素是否包含在列表中,或者判断某个元素是否不在列表中
判断某个元素是否在列表中用关键字in,判断某个元素是否不在列表中用关键字not in
例,这里有一分食物清单,小明喜欢吃的食物是pizza,判断清单中是否有小时吃的食物:
# 定义一个食物名单列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 小明最喜欢的食物 favorite_food = 'pizza' # 判断favorite_food是否在列表foods,如果存在返回True,不存在返回False,并将结果赋值给变量value value = https://www.it610.com/article/favorite_food in foods # 打印结果 print(value) # 判断favorite_food是否不在列表foods,如果不存在返回True,存在返回False,并将结果赋值给变量value value = favorite_food not in foods # 打印结果 print(value)

上面的代码是在编辑器中输出的,而不是在IDLEK写的
输出:
True
False
注,通常!===判断速度更快
走进if语句的世界
了解了上面说的布尔表达式后,再回过头来看if语句,将更容易理解
例,还用上面的食物清单,如果清单中有小明喜欢的食物,则打印That's my favorite food
# 定义一个食物名单列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 小明最喜欢的食物 favorite_food = 'pizza' # 判断清单中是否有小明喜欢的食物 if favorite_food in foods: print("That's my favorite food", favorite_food)

输出:
That's my favorite food pizza
我们已经知道,favorite_food in foods会返回True,所以if语句判断条件表达成立,因此会执行下面的被缩进的代码块print("That's my favorite food", favorite_food)
if-else语句
if是在条件成立时执行代码块;而else是在if判断条件不成立时执行的
例:
# 定义一个食物名单列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 小明最喜欢的食物 favorite_food = 'cucumber' # 判断清单中是否有小明喜欢的食物 if favorite_food in foods: print("That's my favorite food", favorite_food) else: print("There's no food I like")

输出:
There's no food I like
这里将小明喜欢的食物改成了黄瓜(cucumber),因为列表中没有这个元素,所以if语句不会被执行,这种情况下,将会执行else下的代码块
if-elif-esle语句
elif可以对我个表达式进行判断,假如现在有两份食物清单,判断其中是否有小明喜欢的食物,例:
# 第一个食物名单列表 foods1 = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 第二个食物名单列表 foods2 = ['cucumber', 'eggplant', 'rice', 'milk'] # 小明最喜欢的食物 favorite_food = 'cucumber' # 判断清单中是否有小明喜欢的食物 if favorite_food in foods1: print("That's my favorite food", favorite_food) elif favorite_food in foods2: print("That's my favorite food", favorite_food) else: print("There's no food I like")

输出:
That's my favorite food cucumber
因为第二个食物列表中有小明喜欢的食物,所以会输出That's my favorite food cucumber
注,在使用if-elif时,可以不使用else,这个得看实际情况;另外,elif可以有多个
例:
# 定义一个食物名单列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 小明最喜欢的食物黄瓜 favorite_food = 'cucumber'# 遍历食物清单,小明现在很饿 for food in foods: if food == favorite_food: print("抱歉,黄瓜没有货") elif food == 'noodles': print("抱歉,面条没有货") elif food == 'pizza': print("抱歉,批萨没有货")

输出:
抱歉,面条没有货
抱歉,批萨没有货
小明现在很饿,却吃不到自己想吃的东西,他只好换一家餐馆,希望下一家的食物能多一点
【Python|Python Learning-条件控制语句】目录
上一章 Python Learning-列表的更多操作
下一章 Python Learning-字典

    推荐阅读