设为首页 加入收藏

TOP

第五章 if语句(四)
2017-10-10 08:26:31 】 浏览:9995
Tags:第五 语句
s $" + str(price) + ".")
#我在考虑,如何结果让用户自己输入名字,在编程中,我们程序员自己肯定知道如何调用函数,但是用户不知道
your_age(18)
your_age(10)
your_age(2)

#年龄的问题可以结果,我们直接重新定义一个年龄变量,让用户输入即可,但是如何解决自动调用函数的问题,不可能让用户自己调用函数
my_age = int(input("Please input your age: "))
your_age(my_age)
这些代码大都未变。第二个elif代码块通过检查确定年龄不到65岁后,才将门票价格设置为全票价格——10美元。请注意,在else代码块中,必须将所赋
的值改为5,因为仅当年龄超过65(含)时,才会执行这个代码块。

5.3.5 省略else代码块
Python并不要求if-elif结构后面必须有else代码块。在有些情况下,else代码块很有用;而在其他一些情况下,使用一条elif语句来处理特定的情形更
清晰:
elif代码块在顾客的年龄超过65(含)时,将价格设置为5美元,这笔使用else代码块更清晰些。经过这样的修改后,每个代码块都仅在通过了相应的测试时
才会执行。
else是一条包罗万象的语句,只要不满足任何if或elif中的条件测试,其中的代码就会执行,这可能会引入无效甚至恶意的数据。如果知道最终要测试的条
件,应考虑使用一个elif代码块代替else。这样,我们就可以肯定,仅当满足相应的条件时,我们的代码才会执行。

5.3.6 测试多个条件
if-elif-else结构功能强大,但仅适合用于只有一个条件满足的情况:遇到通过了测试后,Python就跳过余下的测试。这种行为很好,效率很高,让我
们能够测试一个特定的条件。
然而,有时候必须检查我们关心的所有条件。在这种情况下,应使用一系列不包含elif和else代码块的简单if语句。有可能有多个条件为True,且我们需要
在每个条件为True时都采取相应措施时,适合使用这种方法。
toppings.py
requested_toppings = ['mushrooms','extra cheese']

if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")

if 'pepperoni' in requested_toppings:
print("Adding pepperoni")

if 'extra cheese' in requested_toppings:
print("Adding extra cheese")

print('\nFinished making your pizza!')
我们首先创建了一个列表,其中包含顾客点的配料。if语句检查顾客是否点了配料蘑菇('mushrooms').如果点了,就打印一条确认消息。检查配料腊香肠
('pepperoni'),这个程序不管前一个测试是否通过,都将进行下一个测试。每当这个程序运行时,都会进行这三个独立的测试。
在这个示例中,会检查每个条件,因此将在披萨中添加蘑菇并多加芝士:
Adding mushrooms.
Adding extra cheese

Finished making your pizza!
如果像下面这样转而使用if-elif-else结构,代码将不能正确地运行,因为有一个测试通过后,就会跳过余下的测试
requested_toppings = ['mushrooms','extra cheese']

if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")
elif 'pepperoni' in requested_toppings:
print("Adding pepperoni")
elif 'extra cheese' in requested_toppings:
print("Adding extra cheese")

print('\nFinished making your pizza!')
第一个测试检查列表中是否包含'mushrooms',它通过了,因此将在比萨中添加蘑菇。然而,Python将跳过if-elif-else结构中余下的测试,不在检查列
表中是否包含'extra cheese'和'pepperoni'.其结果是,将添加顾客点的第一种配料,但不会添加其他的配料:
Adding mushrooms.

Finished making your pizza!
总之,如果我们只想之星一个代码块,就使用if-elif-else结构;如果要运行多个代码块,就使用一系列独立的if语句。

动手试一试
5-3
alien_color = 'yellow'

  if alien_color == 'yellow':
   print("You get 5 score.")

  if alien_color != 'yellow':
   print("The other color.")
5-4
  alien_color = 'red'

  if alien_color == 'yellow':
  score = 5
  else:
   score = 10
  print("You get " + str(score) + " score.")
5.4 使用if语句处理列表
通过结合使用if语句和列表,可完成一些有趣的任务:对列表中特定的值做特殊处理;高效地管理不断变化的情形,如餐馆是否还有特定的食材;证明代码
在各种情形下都能按预期那样运行。

5.4.1 检查特殊元素
本章开头通过一个简单示例演示了如何处理特殊值'bmw'——它需要采取不同的格式进行打印。既然我们对条件测试和if语句有了大致的认识,下面来进一

步研究如何检查列表中的特殊值,并对其做合适的处理。
继续使用前面的比萨店示例。这家比萨店在制作比萨时,每添加一种配料都打印一条消息。通过创建一个列表,在其中包含顾客点的配料,并使用一个循环
来指出添加到比萨中的配料,可以以极高的效率编写这样的代码:
requested_toppings = ['mushrooms','extra cheese','pepperoni']

for requested_topping in requested_toppings:
print("Adding " + requested_topping + '.')

print("\nFinished making your pizza.")
输出很简单,因为上述代码不过是一个简单的for循环:
Adding mushrooms.
Adding extra cheese.
Adding pepperoni.

Finished making your pizza.
然而,如果比萨店的青椒用完了,该如何处理呢?为妥善地处理这种情况,可在for循环中包含一条if语句:
requested_toppings = ['mushrooms','extra cheese','pepperoni']

for requested_topping in requested_toppings:
  #加入if条件进行判断,如果
首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇17年春python班级作业>>>.. 下一篇一个轻量级的tcp交互,thrift的使..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目