有时候,我们需要依照某种条件,再决定要不要做某个操作。在Python中,if语句能够帮助我们检查程序的当前状态,告诉计算机接下来该做什么。

条件表达式

每个if后面都跟着一个True或False的表达式,我们称之为“条件表达式”。那么什么是条件表达式?我们直接上例子吧!

>>> True == False
False
>>> 10 > 9
True
>>> "A" == "A"
True
>>> 5 >= 10
False

上面代码演示的都是一个个单一的条件表达式。如果我们需要同时满足多个条件,或满足多个条件中的任一一个,应该怎么写“多条件表达式”呢?这就需要结合and和or关键字了。

  • and检查多个条件:一假则假,都真才真;
  • or检查多个条件:一真则真,都假才假;
>>> (1 > 5) and ("A" != "B")
False
>>> (1 > 5) or ("A" != "B")
True

当知道什么是“条件表达式”后,接下来,结合if应该怎么用呢?看一个简单的例子就行。

>>> if True != False:
... print("今天天气很好!")
...
今天天气很好!

if表达式的多种形式

前面我们已经讲述了“条件表达式”的概念,下面我们直接来看看if表达式的不同变种形式。

简单if表达式

最简单的if表达式,只有一个条件表达式和一个执行语句,语法如下:

if 条件表达式:
执行语句……

案例:如果天气好,我就去旅游。

x = "天气好"
if x == "天气好":
print("我就去旅游") # 结果:我就去旅游

if - else表达式

有时候,我们想:当满足某个条件表达式时,执行某个语句;不满足时,就执行另外一个语句。此时就需要使用if - else表达式,语法如下:

if 条件表达式:
执行语句1……
else:
执行语句2……

案例:如果天气好,我就去旅游;否则就呆在家。

x = "下雨"
if x == "天气好":
print("我就去旅游")
else:
print("呆在家") # 结果:呆在家

if - elif - else表达式

当判断条件涉及到3个条件表达式的时候,Python中提供了if - elif - else结构,来实现该需求,语法如下:

if 条件表达式1:
执行语句1……
elif 条件表达式2:
执行语句2……
else:
执行语句3……

案例:植物园门票,<10岁不收钱,[10,18)岁收50元,[18,+∞)岁收80元。

x = 17
if x < 10:
print("不收钱")
elif x >= 10 and x < 18:
print("收50元")
else:
print("收80元") # 结果:收50元

多个elif表达式

如果判断条件有3个条件表达式以上,Python中提供了if - elif - ... - elif - else结构等多elif结构,供我们使用,语法如下:

if 条件表达式1:
执行语句1……
elif 条件表达式2:
执行语句2……
elif 条件表达式3:
执行语句3……
else:
执行语句4……

案例:动物园门票,<10岁不收钱,[10,18)岁收30元,[18,25)岁收60元,[25,+∞)岁收80元。

x = 23
if x < 10:
print("不收钱")
elif x >= 10 and x < 18:
print("收30元")
elif x >= 18 and x < 25:
print("收60元")
else:
print("收80元") # 结果:收60元

省略else表达式

在这个结构中,我们可以保留else表达式,也可以直接省略else表达式,操作还是和上面一样,这里就不在做演示说明。

最新文章

  1. asp值mysql驱动
  2. [转]mysql binlog in realtime
  3. Windows 8.1 Preview 开发资源汇总
  4. Gulp:新一代前端构建利器
  5. Linux之通配符与转义字符
  6. SNMP学习之结构体snmp_secmod_def
  7. COCOS2DX遇到的问题
  8. Codeforces780C
  9. Linux系统挂载Windows系统下的共享文件
  10. 关于如何登陆oracle 18c pdb 的问题
  11. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-4配置NTP服务
  12. python-随机操作(random)
  13. php合并数组并保留键值的方法
  14. 设计模式之Adapter(适配器)(转)
  15. poj3253哈夫曼树
  16. DirectInfo.GetFiles返回数组的默认排序
  17. 设置sqlplus访问远程oracle数据库的最快方法
  18. 【[JSOI2009]火星藏宝图】
  19. 2017 Multi-University Training Contest - Team 5——HDU6095&amp;&amp;HDU6090&amp;&amp;HDU
  20. Redis codis 搭建测试

热门文章

  1. how to change svg polygon size by update it&#39;s points in js
  2. Chateau Renice酒庄 :忠于风味,尊重自然
  3. NGK.IO超级节点是我们掌握的下一个财富密码吗?
  4. java数据类型(进阶篇)
  5. DBA 的效率加速器——CloudQuery v1.3.2 上线!
  6. Linux下部署Apache+PHP
  7. spring学习路径
  8. 调用Config.ini类
  9. MySQL5.7.29 和 Navicat ===&gt; windows窗口式按装和使用
  10. 又长又细,万字长文带你解读Redisson分布式锁的源码