前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 。
背景:对于该系列文章的前三篇,自己读过的同学应该能发现一个问题,那就是我们写的所有代码都是一路“直行”的,无法根据指定条件选择不同的途径,这显然是不合理的。就好像你要到达一个目的地,只会盲目直行,不会根据特定条件停止或者转弯,那大多数时候你是无法到达这个目的地的。在Python的程序设计就,就提供了用于“转弯”的语句,即 if,elif,else这三个关键词组成的语句。以下将以Python中的分支语句为主题进行展开。Python中的分支的主要结构(3种)
# 第一种
if condition:
dosomething
# 第二种
if condition:
dosomething
else:
doanotherthing
# 第三种
if condition_1:
dosomething
elif condition_2:
do_another_thing
else:
do_other_thing
###### 代码说明,请先注意,以上的代码是不能运行的,这里只是想告诉你一个分支的主要结构,能运行的代码稍后会有说明。
首先,上面展示了三种Python中的分支结构。先看看第一种,仔细观察,会发现这么一个特点,那就是,以 if为关键词,声明这是一个分支,然后 if 的后面跟一个条件,这里用condition来概括,那么这个条件有什么用呢?是这样子的,以 5==6 这个代码为例,这是一个判断左右两边数字是否相等的条件,如果相等,那这行代码运行之后会得到 Ture ,但不会显示在屏幕上,对于 if来说,如果与它同行并且在其后面的 码运行只会返回了 True 或者数字 1,那么就会满足这个 if 分支下面的代码执行条件,该分支下面的代码块就会被执行。再看看 if 所在行的那个一个冒号,它标志这条件的结束,即 if 和 冒号之间包裹着条件。接着看 if 的下一行,你会发现 dosomething 与f的水平距离不一致,这个距离一般为一个 Tab 键的长度,这有什么用呢?它的作用就是为了区分代码的层次等级,以这个 if 分支为例,dosomtehing与 if 的水平距离为一个 Tab 键,那这个dosomething就从属于if。如果 if 是爸爸,那 dosomething就是亲生子女。当然子女如果再繁殖,那之前的子女就会变爸爸,之前的爸爸就会变爷爷了,依次类推(这属于分支嵌套的范畴,暂不展开讨论)。
第一种讲完,接下来是第二种。仔细观察,发现第二种与第一种的差别是,多了一个 else。这如何理解呢?else就是否则的意思,if 是如果。举个例子,如果今天下雨我就不出去玩,否则我就出去玩。这个例子中 “今天不下雨” 对于第二种代码中的 condition ,而else与冒号之间并没有所谓的condition,这是因为没有必要,我只要对 “今天不下雨” 这个条件进行否定就行了,没有必要再列举出其他条件(如果想列举请看第三种),而出不出去玩就是满足某个条件之后要去做的事情了。所以else可以理解为,"如果满足排除condition的一切其他条件"。这么看,else也和if的本质上都是一样的,都是对某个或者多个条件进行判断,else只是偷了一下懒,不过它很大度,满足不了 if 的条件都能满足它。至于else下一行的do_another_thing就无需多言了,和if中的dosomething一样,都是满足某个条件之后要执行的代码块。
最后是第三种,生活中的条件不可能全部都只有两种。在Python中,如果你想处理多个条件,那第三种分支结构很有必要,第三种分支结构特点是,先if,然后 if 后面可以有多个elif,elif的意思的如果不满足前面条件并且满足elif后面跟着的条件那就执行该elif分支下面的代码块,这么讲可能不好理解,没关系,下面有举例。并且elif的后面可以跟着else,当然也可以省略。
以上是一些理论,下面我们将通过一个两个程序来运用这些知识。
# 设定初始用户名
account = '123456'
# 设定初始密码
password = '123456'
# 接受用户输入的用户名并存储到 ac 这个变量中
ac = input("请输入用户名:")
# 接受用户输入的密码并存储到 pwd 这个变量中
pwd = input("请输入密码:")
# 判断输入的用户名与给定的用户名是否一致,如果一致就继续判断密码与给定的密码是否一致
if ac==account:
# 如果给定的密码与输入的密码一致,输出 登录成功 这个信息
if password == pwd:
print("登录成功!")
# 否则(即给定密码与输入的密码不一致),输出 密码有误 这个信息
else:
print("密码有误")
# 否则(即输入的用户名与给定的不一致),输出 用户名有误,登录失败 这个信息
else:
print("用户名有误,登录失败!")
上面这个程序的目的是,从键盘中接受用户输入的账户与密码,再与给定的账户与密码进行比对以达到验证登录的目的。代码注释已附上。
age = input("输入你的年龄:")
# 通过 input 函数接受的输入类型都是字符串,后续为了用数字进行比较,故此选用int函数将字符串转为数字
age = int(age)
# < 用于 数字的大小比较,即左边的是否小于右边
if age<0:
print("年龄不会有比 0 小的吧?")
# <= 用于 数字的大小比较,即左边的是否小于或者等于右边,
# 只要满足小于或者等于这其中的任意一个条件,那么这个条件就是成立的
elif 0<=age<18:
print("祖国的花朵!")
elif 18<=age<45:
print("祖国的中坚力量!")
else:
print("前辈辛苦了!")
上面这个程序的目的是,从键盘中接受用户输入的年龄(千万要记得将其转化为数字),再根据特点条件输出不同提示信息。代码注释已附上。
2.Python中的分支的结构常用词
代码演示
if 5==6:
print('5和6相等')
else:
print('5和6不相等')
if 5<=6:
print('5小于或者等于6')
else:
print('5大于6')
if 5<6 and 8<9:
print("5比6小并且8比9小")
else:
print("5大于或者等于6,或者8大于或者等于9")
if 5<6 or 7>8:
print("5小于6或者7大于8")
else:
print("5大于等于6并且7小于等于8")
以上代码展示是表格中几个关键词的用法,建议都要熟练掌握。
总结:本文对Python中基本分支结构进行的简要讲解,这一块的知识点是非常重要的,大家要好好内化。最后,对文章有疑惑或者发现文章不妥之处可以在评论区留言讨论哦!