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-字典
推荐阅读
- 使用CloudSight|使用CloudSight API进行图像识别的Python脚本
- Python程序设计实验报告一(熟悉IDLE和在线编程平台)
- 编程开发|Python3.9最新版下载与安装
- 数模美赛|美赛python学习d6--插值与拟合
- Python|Python数值插值和曲线拟合
- 数模学习|【插值与拟合~python】
- 利用Python脚本写端口扫描器socket|利用Python脚本写端口扫描器socket,python-nmap
- Python中的|Python中的 No Module named ***问题及解决
- python自学出路-献给即将|python自学出路-献给即将 35 岁的初学者,焦虑 or 出路()
- Sublime|Sublime Text3编译运行C++/Java/Python程序语言出现中文乱码【已解决】