Python分支语句常见用法

开发 后端
Python分支语句,也称为选择语句,体现了程序的选择结构,即对应不同的场景,选择不同的处理方式。当满足某个条件的时候,进行对应的操作,不满足则进行其他的操作。

分支语句可分为单分支、二分支和多分支结构,在所有分支中,只能选择其中一条路径,根据分支条件成立与否决定是否执行。由于只能选择一条路径执行,所以应当充分考虑分支语句的条件的设立规则。下面由几个实例来说明分支语句的用法。

一、单分支语句:if语句

单分支结构是最简单的一种选择结构,语法结构如下:

if 条件表达式:
语句块

当条件表达式成立的时候,执行语句块,不成立则不执行。例如:用户输入两个数,比较其大小,输出小的一个。

num_a = int(input('please input a number:'))
num_b = int(input('please input another number:'))
if num_a > num_b:
num_a, num_b = num_b, num_a #交换两个数
print("the smaller one is",num_a)

上例运用单分支结构,当数a大于数b的条件成立的时候,将两者交换,最后输出较小的数a。分支语句中,仅当条件成立的时候才执行,否则不执行交换,直接顺序执行分支语句之后的语句。

二、二分支语句:if else语句

二分支结构在单分支结构的基础上增加了else语句,当if条件不成立时,执行else语句,语法结构如下:

if 条件表达式:
语句块1
else
语句块2

二分支结构是二选一的结构,语句块1和语句块2有且只有一个一定会被执行到。还是上面的例子,用二分支语句可以写作:

num_a = int(input('please input a number:'))
num_b = int(input('please input another number:'))
if num_a > num_b:
print("the smaller one is",num_b)
else
print("the smaller one is",num_a)

再如,根据身份证号码判断性别,可以写作:

id_code = input('请输入身份证号码:')
number = int(id_code[-2])
if number%2 == 0:
print("女性")
else:
print("男性")

这里的else隐含条件是number%2 == 0不成立,即number为奇数,所以也可以将else换做if number%2 == 1,但是从程序的执行效率上考虑,两个if语句需要执行两次判断,而else语句不需要做判断,所以效率更高。

三、多分支结构:if – elif – else语句

多分支结构是二分支结构的扩展,即多选一的情况,其中else语句是可选的,当else存在时,有且只有一个分支会被执行到。其语法结构如下:

if 条件表达式1:
语句块1
elif条件表达式2:
语句块2

elif条件表达式n:
语句块n
else
语句块n+1

例如让用户输入身高体重,计算其BMI指数。BMI指身体质量指数,是用体重(kg)除以身高(m)的平方得到,有国际通用的衡量标椎:  

过轻

低于18.5

正常

18.5-25(不含)

偏胖

25-30(不含)

肥胖

30-35(不含)

重度肥胖

35及以上

weight = float(input("请输入你的体重(Kg):"))
height = float(input("请输入你的身高(m):"))
BMI = weight / height ** 2
if BMI < 0:
print("输入错误")
elif BMI < 18.5 :
print("偏瘦")
elif BMI < 25 :
print("正常")
elif BMI < 30 :
print("偏胖")
elif BMI < 35 :
print("肥胖")
else:
print("重度肥胖")

上例通过计算得到BMI指数,根据其值输出所对应的“档位”,因为在设定分支条件时应当注意每个分支条件之间没有重复区域,才能保证输出结果为其中一种。

四、嵌套分支结构

在分支语句中如果要做进一步的条件判断,就会用到嵌套的分支结构。嵌套也可以有多层,通过缩进来表示其包含关系。

代表性语法结构如下:

if 条件表达式1:

if条件表达式2:
语句块1
else
语句块2
else
语句块3

例如上例在做身份证号的性别判断时,如果要先对输入的身份证号合法性做基本检查,例如其位数是不是正确,则需要嵌套分支:

id_code = input('请输入身份证号码:')
if len(id_code) == 18:
number = int(id_code[-2])
if number%2 == 0:
print("女性")
else:
print("男性")
else:
print("输入不合法")
责任编辑:庞桂玉 来源: Python编程学习圈
相关推荐

2010-11-18 12:58:25

Oracle条件分支语

2010-09-08 17:10:24

SQL循环语句

2010-06-02 13:24:02

SVN用法

2010-10-27 15:03:47

Oracle with

2010-08-12 09:25:35

Flex控件

2010-07-26 14:45:17

Perl Hash

2010-07-23 14:12:14

Perl Hash

2010-10-15 11:16:52

MySQL Show语

2023-12-04 07:36:30

DjangoPython

2010-11-26 15:32:24

MySQL decla

2010-07-16 08:47:53

Perl if语句

2010-01-18 13:46:32

VB.NET条件分支语

2010-08-05 10:16:14

Flex效果

2016-08-29 17:28:53

JavascriptHtmlThis

2010-07-28 10:38:29

Flex开源框架

2011-10-08 15:49:52

Java

2010-09-26 09:16:16

JVM监控工具

2010-06-03 17:08:28

Hadoop Shel

2010-11-11 11:13:54

SQL Server

2010-11-11 11:49:02

SQL嵌套SELECT
点赞
收藏

51CTO技术栈公众号