设为首页 加入收藏

TOP

第五章 if语句(三)
2017-10-10 08:26:31 】 浏览:9997
Tags:第五 语句
有一个表示某人年龄的变量,而你想知道这个人是否够投票的年龄,可使用如下代码:
age = 19

if age >= 18:
print("You are old enough to vote!")
Python检查变量age的值是否大于或等于18;答案是肯定的,因此Python执行缩进的print语句:
You are old enough to vote!
在if语句中,缩进的作用与for循环中相同。如果测试通过了,将执行if语句后面所有缩进的代码行,否则将忽略它们。
在紧跟if语句后面的代码块中国,可根据需要包含任意数量的代码行。下面在一个人够投票的年龄时在打印一行输出,问他是否登记了:
age = 19

if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
条件测试通过了,而两条print语句都缩进了,因此它们都将执行:
  You are old enough to vote!
  Have you registered to vote yet?
如果age的值小于18,这个程序将不会有任何输出。

5.3.2 if-else 语句
经常需要在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用Python提供的if-else语句块类似于简单的if语句,
但其中的else语句让我们能够制定条件测试未通过时要执行的操作。
下面的代码在一个人够投票的年龄时显示u前面相同的信息,同时在这个人不够投票的年龄时也显示一条信息:

age = 17

if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("You are too young to vote.")
print("Please register to vote as soon as you turn 18!")
如果条件测试通过了,就执行第一个缩进的print语句块;如果测试结果为False,就执行else代码块。这次age小于18,条件测试未通过,因此执行else
代码块中的代码:
  You are too young to vote.
  Please register to vote as soon as you turn 18!
上述代码之所以可行,是因为值存在两种情形;要么够投票的年龄,要么不够。if-else结构非常适合于要让Python执行两种操作之一的情形。在这种简单
的if-else结构中,总是会执行两个操作中的一个。


5.3.3 if-elif-else结构
经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else结构。Python只执行if-elif-else结构中的一个代码块,它以此检查每个条件测
试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试
在现实世界中,很多情况下需要考虑的情形都超过两个。例如,来看一个根据年龄段收费的游乐场:
1、四岁以下免费;
2、4~18岁收费5美元;
  3、18岁(含)以上收费10美元。
  如果只使用一条if语句,如何确定门票价格呢?下面的代码确定一个人所属的年龄段,并打印一条包含门票价格的消息:
def your_age(age):
if age < 4:
print("Your admission cost is $0.")
elif age >= 4 and age < 18:
print("Your admission cost is $5.")
else:
print("Your admission cost is $10.")
#我在考虑,如何结果让用户自己输入名字,在编程中,我们程序员自己肯定知道如何调用函数,但是用户不知道
your_age(18)
your_age(10)
your_age(2)

#年龄的问题可以结果,我们直接重新定义一个年龄变量,让用户输入即可,但是如何解决自动调用函数的问题,不可能让用户自己调用函数
my_age = int(input("Please input your age: "))
your_age(my_age)
if检测检查一个人是否满4岁,如果是这样,Python就打印一条合适的消息,并跳过余下的测试。elif代码行其实是另一个if测试,它仅在前面的测试未
通过时才会运行。在这里,我们知道这个人的年龄不小于4岁,因为第一个测试未通过。如果这个人未满18岁,Python将打印相应的消息,并跳过else代码块,
如果if测试和elif测试都未通过,Python将运行else代码块中的代码。
为让代码更简洁,可不在if-elif-else代码块中打印门票价格,而只在其中设置门票价格,并在后面添加一条简单的print语句:
def your_age(age):
if age < 4:
price = 0
elif age >= 4 and age < 18:
price = 5
else:
price = 10
print("Your admission cost is $" + str(price) + ".")
#我在考虑,如何结果让用户自己输入名字,在编程中,我们程序员自己肯定知道如何调用函数,但是用户不知道
your_age(18)
your_age(10)
your_age(2)

#年龄的问题可以结果,我们直接重新定义一个年龄变量,让用户输入即可,但是如何解决自动调用函数的问题,不可能让用户自己调用函数
my_age = int(input("Please input your age: "))
your_age(my_age)
代码行还是像前一个示例那样,根据人的年龄设置变量price的值。在if-elif-else结构中设置price的值后,一条未缩进的print语句会根据这个变量的值打印
一条消息,指出门票的价格。
这些代码的输出与前一个示例相同,但if-elif-else结构的作用更小,它只确定门票的价格,而不是在确定门票价格的同时打印一条消息。处效率更高外,这些
修改后的代码还更容易修改:要调整输出消息的内容,只需修改一条而不是三条print语句。

注意:Python代码以简洁为美,一个函数的功能越少越好,尽量要简洁,避免重复性的工作,把重复性的工作放到最后一个模块即可,所以在工作中,遇到重复性的
代码块的时候,要尝试去优化代码,尽量让代码的功能简单最好。

5.3.4 使用多个elif代码块
可根据需要使用任意数量的elif代码块,例如,假设前述游乐场要给老年人打折,可再添加一个条件测试,判断顾客是否符合打折条件。下面假设对于65岁(含)
以上的老人,可以半价(即5美元)购买门票:
def your_age(age):
if age < 4:
price = 0
elif age >= 4 and age < 18:
price = 5
elif age < 65:
price = 10
elif age >= 65:
price = 5
print("Your admission cost i
首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇17年春python班级作业>>>.. 下一篇一个轻量级的tcp交互,thrift的使..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目