一、一个简单示例

  假设有一个汽车列表,并想将其每辆汽车的名称打印出来。遇到汽车名‘bmw’,以全大写打印;其他汽车名,首字母大写

cars=['audi','bmw','subaru','toyota']
for car in cars:
if car == 'bmw': #检查汽车名是否是bmw
print(car.upper())
else:
print(car.title()) #输出结果:
Audi
BMW
Subaru
Toyota

二、条件测试

if 语句的核心都有一个值为True或False的表示式。如果条件测试的值为True,就执行if 语句后面的代码;如果为False,就忽略这些代码。

1. 检查是否相等

>>>car = 'bmw'    #将car的值设置为bmw
>>>car =='bmw' #使用两个等号检查car的值是否为bmw。如果是,返回True;如果不是,返回False
  True

2. 检查是否等于时不考虑大小写:python检查是否等于时区分大小写

>>>car = 'Audi'             #将Audi存储在变量car中
>>>car.lower()=='audi' #获取变量car的值并将其转换为小写,再将结果与字符串‘audi’进行比较。
True
>>>car
'Audi' #这个条件测试并没有影响存储在变量car中的值

3. 检查是否不相等:用(!=)来判断两个值是否不等

requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
print("Hold the anchovies!")
#输出结果:
Hold the anchovies!

4. 比较数字

>>>age = 18
>>>age == 18
True #比较相等,返回True answer = 17
if answer !=42: #判断两个数字是否不等,如不等打印下面消息
print("That is not the correct answer.Please try again!") >>>age = 19
>>>age < 21
True
>>>age <=21
True
>>>age > 21
False
>>>age >=21
False

5. 检查多个条件  

a. 使用and检查多个条件:检查两个条件是否都为True,如果是,整个表达式为True;反之如果有一方不是True,整个表达式就为False。

>>>age_0 = 22         #定义变量age_0和age_1
>>>age_1 =18
>>>age_0 >=21 and age_1 >=21 #检查这两个变量是否都大于或等于21
False # 两个变量有一个不符合条件,表达式结果为False
>>>age_1 =22 #把age_1的的值修改之后,符合条件,表达式结果为True
>>>age_0 >=21 and age_1 >=21
True

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

>>> age_0 =22
>>> age_1 =18
>>> age_0 >=21 or age_1 >=21
True
>>> age_0 =18
>>> age_0 >=21 or age_1 >=21
False

6. 检查特定值是否包含在列表中:要判断特定的值是否已包含在列表中,使用关键字 in。

>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False

7. 检查特定值是否不包含在列表中:要判断特定的值不包含在列表中,使用not in。

banned_users = ['andrew','carolina','david']
user = 'marie'
if user not in banned_users:
print(user.title() +", you can post a response if you wish.")
#输出结果:Marie, you can post a response if you wish.
# user的值未包含在列表banned_users中,python将返回True,进而执行缩进的代码行

8. 布尔表达式:与条件表达式一样,结果不是True,就是False

game_active = True
can_edit = False #布尔值通常用于记录条件,如游戏是否正在运行,或用户是否可以编辑网站的特定内容

  

三、if 语句

1. 简单的if 语句:在if 语句中,缩进的作用域for 循环相同。如果测试通过,将执行 if 语句后面所有缩进的代码行,否则将忽略。

if conditional_test:     #conditional_test:可包含任何条件测试
do something #条件为True,执行此代码块;条件为False,不执行此代码块
例如:
age = 19
if age >= 18:
   print("You are old enough to vote!")
#输出结果:
You are old enough to vote!

2. if-else 语句:条件测试通过执行一个操作,没有通过执行另一个操作。

age = 17
if age >= 18: # 条件不通过,执行else的语句块
print("You are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("Sorry, you are too young to vate.")
print("Please register to vote as soon as you turn 18!")
#输出结果:
Sorry, you are too young to vate.
Please register to vote as soon as you turn 18!

3. if-elif-else结构:用于超过两个条件的情形。

age = 12
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")
或简易代码如下,此代码中if-elif-else中的作用减弱,但调整价格方面变简易了:
age = 12
if age <4:
  price= 0
elif age < 18:
  price= 5
else:
  price= 10
print("You admission cost is $"+ str(price) + ".")
#输出结果:Your admission cost is $5

4. 使用多个elif 代码块

age = 66
if age <4:
price = 0
elif age < 18:
price = 5
elif age <65:
price = 10
else:
price = 5
print("You admission cost is $"+ str(price) + ".") #输出结果:You admission cost is $5.

5. 省略else 代码块:部分情况下,使用一条elif 语句处理特定的情形更清晰,所以需要省略 else 代码块。

age = 66
if age <4:
price = 0
elif age < 18:
price = 5
elif age <65:
price = 10
elif age >=65:
price = 5
print("You admission cost is $"+ str(price) + ".")
#输出结果:You admission cost is $5.

6. 测试多个条件

requested_topping = ['mushrooms','extra cheese']
if 'mushrooms' in requested_topping:
print("Adding mushrooms")
if 'pepperoni' in requested_topping:
print("Adding pepperoni")
if 'extra cheese' in requested_topping:
print("Adding extra cheese")
print("\nFinished making your pizza!") #输出结果:
Adding mushrooms
Adding extra cheese Finished making your pizza!

 解析以上代码:

a. 创建一个列表,包含顾客点的配料

b. if 语句检查配料是mushrooms 或 extra cheese 或 pepperoni。这三个if 语句块是独立的测试,就是不会因为前面测试通过而跳出其余的代码块,如果后面的代码块也通过,会继续执行。也就是多重选择,多重结果。

四、使用if 语句处理列表

1. 检查特殊元素

requested_toppings = ['mushrooms','green peppers','extra cheese']
for requested_topping in requested_toppings:
if requested_topping =='green peppers':
print("Sorry, we are out of green peppers right now.")
else:
print("Adding" + requested_topping + ".")
print("\nFinished making your pizza!") #输出结果:
Addingmushrooms.
Sorry, we are out of green peppers right now.
Addingextra cheese. Finished making your pizza!

 解析以上代码:

a. 创建一个列表,包含三种配料

b. for循环语句来依次添加列表中的配料。先检查顾客点的是否是green peppers,如果是,就打印一条消息告知不能点green peppers。else代码块确保其他配料都添加到披萨中。

c. 添加完成之后,打印一条消息告知顾客配料已经添加完成

2. 确定列表不是空的

requested_toppings = []
if requested_toppings:
for requested_topping in requested_toppings:
print("Adding" + requested_topping + ".")
print("\nFinished making your pizza")
else:
print("Are you sure you want a plain pizza?") #输出结果:
Are you sure you want a plain pizza?

 解析以上代码

a. 创建一个空列表

b. 用if 进行检查,如果变量在列表中,执行if 后面的 for 循环语句依次进行配料的添加

c 用if 进行检查,如果变量不在列表中,就打印询问顾客是否要点不加任何配料的披萨

3. 使用多个列表

available_toppings = ['mushrooms','olives','green peppers','pepperoni','pineapple','extra cheese']
requested_toppings = ['mushrooms','frenche fries','extra cheese']
for requested_topping in requested_toppings:
if requested_topping in available_toppings:
print("Adding" + requested_topping + ".")
else:
print("Sorry, we don't have" + requested_topping + ".")
print("\nFinished making your pizza!") #输出结果:
Addingmushrooms.
Sorry, we don't havefrenche fries.
Addingextra cheese. Finished making your pizza!

 解析以上代码:

a. 先定义两个列表,第一个列表包含披萨店供应的配料,第二个列表包含顾客点的配料

b. 用for 循环遍历顾客点的配料列表:检查配料是否包含在供应的配料列表中

c. 用 if 判断如果顾客要求的配料在供应配料列表中,就执行if 后面的代码块

d. 用 if 判断如果顾客要求的配料不在供应配料列表中,就执行 else 后面的代码块

e. 添加完成之后,最后打印告知用户披萨已经完成

五、设置 if 语句的格式:在==、>=和 <=等比较运算符两边各添加一个空格,代码阅读就更简易。

备注:内容摘录自《python编程:从入门到实践》

python编程:从入门到实践----第五章>if 语句的更多相关文章

  1. #Python编程从入门到实践#第四章笔记

    #Python编程从入门到实践#第四章笔记   操作列表 ​​​1.遍历列表 使用for循环,遍历values列表 for value in values: print(value) 2.数字列表 使 ...

  2. 《Python编程从入门到实践》第二章_变量和简单数据类型

    什么是变量呢? 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Pyth ...

  3. Python:从入门到实践--第五章--if语句--练习

    #1.编写一系列条件测试:将每个测试以及结果打印出来 car = '宝马' if car == "宝马": print("预测正确") print(car) e ...

  4. #Python编程从入门到实践#第三章笔记

      列表简介 ​​​1.什么是列表 列表:由一系列按也顶顺序排列的元素组成.元素之间可以没有任何关系. 列表:用方括号[]表示,并用逗号分隔其中元素.名称一般为复数 2.访问元素 (1)列表是有序集合 ...

  5. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  6. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  7. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  8. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  9. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

随机推荐

  1. select2 智能补全模糊查询select2的下拉选择框使用

    我们在上篇文章中已经在SpringMVC基础框架的基础上应用了BootStrap的后台框架,在此基础上记录select2的使用. 应用bootstrap模板 基础项目源码下载地址为: SpringMV ...

  2. Javascript观察者模式(Object.defineProperty、Reflect和Proxy实现)

    什么是观察者模式? 答:在数据发生改变时,对应的处理函数自动执行.函数自动观察数据对象,一旦对象有变化,函数就会自动执行. 参考<原生JavaScript实现观察者模式>(https:// ...

  3. Mysql升级、免安装版MYSQL安装与卸载

    1.         备份好数据库:表结构和数据: 2.         备份my.ini文件和data文件夹: 3.         卸载旧版本mysql: 4.         安装新版本mysq ...

  4. mysql第六篇 : MySQL索引原理与慢查询优化

    浏览目录 一.索引介绍 二.索引方法 三.索引类型 四.聚合索引和辅助索引 五.测试索引 六.正确使用索引 七.组合索引 八.注意事项 九.查询计划 十.慢日志查询 十一.大数据量分页优化 一.索引介 ...

  5. 在Mac上如何运行jar文件

    操作一:编译,打包. 操作二: 运行jar文件,提示:jar中没有主清单属性. 解决办法: 使用解压工具解压HelloWorld.jar文件,往MANIFEST.MF中添加Main-Class. 1. ...

  6. Maccms后门分析复现(并非官网的Maccms){10.15 第二十二天}

    该复现参考网络中的文章,该漏洞复现仅仅是为了学习交流,严禁非法使用!!!! Maccms官网:http://www.maccms.cn/ Maccms网站基于PHP+MYSQL的系统,易用性.功能良好 ...

  7. Q3狂揽3亿美元净利润的特斯拉会让国内电动汽车厂商喜极而泣吗?

    作为电动汽车行业的标杆,特斯拉无疑是国内电动汽车厂商发展进程中重要的参考对象.而前段时间特斯拉身上出现的产能受阻.私有化风波.马斯克卸任董事长一职等事件,着实让国产电动汽车厂商惊出一身冷汗.毕竟如果特 ...

  8. 通过Request获取客户端的真实IP

    我们在做项目的时候经常需要获取客户端的真实ip去进行判断,为此搜索了相关文章,以下这个讲解的比较明白,直接拿来 https://blog.csdn.net/yin_jw/article/details ...

  9. Arduino --structure

    The elements of Arduino (C++) code. Sketch loop() setup() Control Structure break continue do...whil ...

  10. bzoj 4236JOIOJI

    一开始忘掉特殊情况也是蛋疼2333(有一直到头的.mp[0][0]是要特判的) 做法也就是找mp[i][j]相同的东西.(貌似可以写成线性方程组(z=x+A,z=y+B)过这个的就是相等(可以先从2维 ...