条件测试

每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。

相等运算符( == )在它两边的值相等时返回True,否则返回False。

在Python中检查是否想等时 区分大小写。例如,两个大小写不同的值会被视为不想等。

要判断两个值是否不等,可结合使用惊叹号和等号( != ),其中惊叹号表示不。

条件语句中可包含各种数学比较,如小于( < )、小于等于( <= )、大于( > )、大于等于( >= )。

检查多个条件

关键字 and 将两个条件测试合而为一;如果都通过了表达式就为True;如果至少一个测试没有通过,整个表达式就为False。

关键字 or 也能够检查多个条件,但只要至少有一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用 or 的表达式才为False。

如:

age_0 = 18
age_1 = 22
if age_0 >= 21 and age_1 <= 21:
print('YES.')
else:
print('Is Not.') age_0 = 20
age_1 = 18
if age_0 >= 21 or age_1 <= 21:
print('YES.')
else:
print('Is not.')

布尔表达式:与条件表达式一样,布尔表达式的结果要么为True,要么为False。

if语句

在 if 语句中,缩进的作用与for循环中相同。 测试通过了,将执行 if 语句后面所有缩进的代码行,否则将忽略它们。

在紧跟在 if 语句后面的代码块中,可根据需要包含任意数量的代码行。

if-else语句

if-else 语句块类似于简单的 if 语句,但其中的 else 语句是 指定条件测试未通过时要执行的操作。

if-elif-else

Python只执行 if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。 测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。

age=2
if age<4:
print("Your admission cost is $0.")
elif age<18:
print("Your admission cost is $5.")
else:
print("Your admission cost is $10.")

总结:else 是一条包罗万象的语句,只要不满足任何 if 或者 elif 中的任何条件测试,其中的代码就会执行,这可能会引入无效甚至恶意的数据。

    如果知道最重要测试的条件,应考虑使用一个 elif 代码块来代替 else 代码块。这样就可以肯定,仅当满足相应的条件时,代码才会执行。

PS:如果只想执行一个代码块,就使用 if-elif-else 结构;如果要运行多个代码块,就使用一系列独立的 if 语句。

使用 if 语句处理列表

检查列表是否为空

如:

users=['admin','guest','zhang','wang','li']
if users:
for user in users:
if user=='admin':
print('Hello '+user.title()+',would you like to see a staus report?')
else:
print('Hello '+user.title())
else:
print('We need to find some users!')

其中的 if users: 是进行简单的检查,如果 users 的列表是空的,Python 就会返回False; 至少包含一个元素时返回True。

同时使用多个列表:

如:

current_users=['admin','guest','zhang','wang','li']
new_users=['admin','guest','zhao','qian','sun']
for user in new_users:
if user.lower() in current_users:
print('Enter one user name:')
else:
print('User name is not used!')

最新文章

  1. [UML]UML系列——类图class的依赖关系
  2. 【读书笔记】iOS网络-异步请求与运行循环
  3. Leetcode 278 First Bad Version 二分查找(二分下标)
  4. Kali Linux 2016.2初体验使用总结
  5. C# Json时间类型的转换
  6. div+css 遮罩层
  7. POJ 2976 Dropping tests 01分数规划
  8. ubuntu 更改文件所有者
  9. codechef Sums in a Triangle题解
  10. ios结构体httpPost头结构
  11. Python 学习笔记11
  12. centos6.9 开机进入grub界面问题解决
  13. Git常用命令拾遗
  14. 【洛谷p1605】迷宫
  15. Math对象的常用属性和方法
  16. scala IDE for Eclipse开发Spark程序
  17. JAVA-JSP内置对象之response对象实现页面自动跳转
  18. 42 前端HTML
  19. (网络流) Island Transport --Hdu -- 4280
  20. BZOJ 2746: [HEOI2012]旅行问题

热门文章

  1. Python-匿名函数与异常处理
  2. 深入浅出 Java Concurrency (37): 并发总结 part 1 死锁与活跃度[转]
  3. SpringBoot 01_HelloWorld
  4. 基于用户的最近邻协同过滤算法(MovieLens数据集)
  5. Dmarc指定外域邮箱接收报告
  6. mac上开启22号端口
  7. Django项目:CMDB(服务器硬件资产自动采集系统)--02--02CMDB将服务器基本信息提交到API接口
  8. Android SDK上手指南:知识测试
  9. python 打印的异常回溯和代码不对应
  10. oauth2使用心得-----基本概念以及认证服务器搭建