概述
if语句
5.1 先来个简单的例子
假设你有一个汽车
列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的方式打印其
名称,但对于汽车名’bmw’,应以全大写的方式打印。下面的代码遍历一个列表,并以首字母大
写的方式打印其中的汽车名,但对于汽车名’bmw’,以全大写的方式打印:
cars.py
cars = ['audi','bmw','subaru','toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
结果为:
Audi
BMW
Subaru
Toyota
5.2.1条件测试 检查是否相等
>>> car = 'bmw'
>>> car == 'bmw'
True
我们首先使用一个等号将car的值设置为’bmw’(见),这种做法你已见过很多次。接下来,
使用两个等号(==)检查car的值是否为’bmw’。这个相等运算符在它两边的值相等时返回True,
否则返回False。在这个示例中,两边的值相等,因此Python返回True。
如果变量car的值不是’bmw’,上述测试将返回False:
1.>>> car = 'audi'
2.>>> car == 'bmw'
False
一个等号是陈述;对于1.处的代码,可解读为“将变量car的值设置为’audi’”。两个等号是
发问;对于2.处的代码,可解读为“变量car的值是’bmw’吗?”。大多数编程语言使用等号的方
式都与这里演示的相同。
这一类中还有检测相等时是否考虑大小写问题 以及检查是否不相等,比较数字,就不一一赘述了
5.2.2 检查特定值是否包含在列表中
>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False
关键字in让Python检查列表requested_toppings是否包含’mushrooms’和
‘pepperoni’。这种技术很有用,它让你能够在创建一个列表后,轻松地检查其中是否包含特定
的值
5.2.3 检查特定值不包含在列表中
banned_user.py
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’未包含在列表banned_users中,因此她将看到一条邀请她发表评论的消息:
Marie, you can post a response if you wish.
5.3.1 if—else语句
经常需要在条件下通过执行,就执行第一个缩进的print语句块,没有通过就执行else操作:
age = 17
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("Sorry, you are too young to vote.")
print("Please register to vote as soon as you turn 18!")
执行结果:
Sorry, you are too young to vote.
Please register to vote as soon as you turn 18!
5.3.2 if—elif—else语句
如果只使用一条if语句,如何确定门票价格呢?下面的代码确定一个人所属的年龄段,并打
印一条包含门票价格的消息:
amusement_park.py
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.")
当然了 执行结果就是:
Your admission cost is $5.
为了使代码更加简洁,可不在if-elif-else中带你因,打印门票价格,而至在其中设置门票价格,并在后边添加一个简单的print语句:
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
else:
price = 10
print("Your admission cost is $" + str(price) + ".")
这其中还有使用多个elif代码块 以及省略else代码块以及测试多个条件 这里我就不多赘述了 非常简单。
5.4使用if语句处理列表
1.检查特殊元素
这家比萨店在制作比萨时,每添加一种配料都打印一条消息。
通过创建一个列表,在其中包含顾客点的配料,并使用一个循环来指出添加到比萨中的配料,可
以以极高的效率编写这样的代码:
toppings.py
requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings:
print("Adding " + requested_topping + ".")
print("nFinished making your pizza!")
输出很简单,就是一个简单的for循环
Adding mushrooms.
Adding green peppers.
Adding extra cheese.
Finished making your pizza!
然而,如果比萨店的青椒用完了,该如何处理呢?为妥善地处理这种情况,可在for循环中
包含一条if语句:
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!")
这里在比萨中添加每种配料前都进行检查。1处的代码检查顾客点的是否是青椒,如果是,
就显示一条消息,指出不能点青椒的原因。2处的else代码块确保其他配料都将添加到比萨中。
输出表明,妥善地处理了顾客点的每种配料:
Adding mushrooms.
Sorry, we are out of green peppers right now.
Adding extra cheese.
Finished making your pizza!
5.4.2 确认列表不是空的
到目前为止,对于处理的每个列表都做了一个简单的假设,即假设它们都至少包含一个元素。
我们马上就要让用户来提供存储在列表中的信息,因此不能再假设循环运行时列表不是空的。有
鉴于此,在运行for循环前确定列表是否为空很重要。
下面在制作比萨前检查顾客点的配料列表是否为空。如果列表是空的,就向顾客确认他是否
要点普通比萨;如果列表不为空,就像前面的示例那样制作比萨:
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?
5.4.3 使用多个列表
顾客的要求往往五花八门,在比萨配料方面尤其如此。如果顾客要在比萨中添加炸薯条,该
怎么办呢?可使用列表和if语句来确定能否满足顾客的要求。
来看看在制作比萨前如何拒绝怪异的配料要求。下面的示例定义了两个列表,其中第一个列
表包含比萨店供应的配料,而第二个列表包含顾客点的配料。这次对于requested_toppings中的
每个元素,都检查它是否是比萨店供应的配料,再决定是否在比萨中添加它
*available_toppings = ['mushrooms', 'olives', 'green peppers',
'pepperoni', 'pineapple', 'extra cheese']
*requested_toppings = ['mushrooms', 'french 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!")
在1处,我们定义了一个列表,其中包含比萨店供应的配料。请注意,如果比萨店供应的配
料是固定的,也可使用一个元组来存储它们。在2处,我们又创建了一个列表,其中包含顾客点
的配料,请注意那个不同寻常的配料——‘french fries’。在3处,我们遍历顾客点的配料列表。
在这个循环中,对于顾客点的每种配料,我们都检查它是否包含在供应的配料列表中(见4);
如果答案是肯定的,就将其加入到比萨中,否则将运行else代码块(见5*):打印一条消息,告
诉顾客不供应这种配料。
这些代码的输出整洁而详实:
Adding mushrooms.
Sorry, we don't have french fries.
Adding extra cheese.
Finished making your pizza!
5.5 小结
在本章中,学习了如何编写结果要么为Ture要么为False的条件测试。学习了如何编写简单的if语句、if-else语句和if-elif-else结构。在程序中,使用了这些结构来测试特定的条件,以确定这些条件是否满足。学习了如何在利用高效的for循环的同时,以不同于其他元素的方式对特定的列表元素进行处理。还再次学习了Python就代码格式方面提出的建议,这可确保即便编写的程序越来越复杂,其代码依然易于阅读和理解。
最后
以上就是忐忑玫瑰为你收集整理的5.if循环 以及for循环if循环的结合使用的全部内容,希望文章能够帮你解决5.if循环 以及for循环if循环的结合使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复