【Python】Python语法基础——分支结构 if...elif...else...

一条一条语句顺序执行,这种代码结构叫做 顺序结构

然而仅有顺序结构并不能解决所有的问题,打个比方,我们要设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后,我们要根据玩家得到的分数来决定是进入第二关,还是告诉玩家“Game Over”。像这种 有两个或多个分支,需要根据判断条件,选择其中的某个分支来执行 的代码结构,我们叫做 “分支结构” 或 “选择结构”。


if 语句

我们使用 if 语句实现分支结构(条件判断)。

最基本的格式为:

if condition:
    代码段1
else:
    代码段2

意思是,

  • 如果 if 后的判断条件为 True,则执行代码段1
  • 如果 if 后的判断条件为 False,则执行代码段2

如果判断条件比较复杂,我们可以使用 elif 做更细致的判断:

if condition_1:
    代码段1
elif condition_2:
    代码段2
elif condition_3:
    代码段3
else:
    代码段4

注意:

  1. 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
  2. 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  3. if 语句是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse
  4. 在Python中没有switch – case语句。
  5. if的判断条件可以简写,只要是 非零数值(0)非空字符串("")非空list([]) 等,就判断为True,否则为False

if 嵌套

可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。

if condition_1:
    代码段1
    if condition_2:
        代码段2
    elif condition_3:
        代码段3
    else:
        代码段4
elif condition_4:
    代码段5
else:
    代码段6

举个具体的例子

num=int(input("输入一个数字:"))

if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")

举几个例子

一、分段函数求值
在这里插入图片描述

# 写法1
x = float(input('x = '))
if x > 1:
    y = 3 * x - 5
elif x >= -1:
    y = x + 2
else:
    y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))


# 写法2、嵌套写法
x = float(input('x = '))
if x > 1:
    y = 3 * x - 5
else:
    if x >= -1:
        y = x + 2
    else:
        y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))

提倡 代码“扁平化”

因为嵌套结构的嵌套层次多了会严重影响代码的可读性,所以 能用扁平化的结构就不要用嵌套

二、百分制成绩转换为等级制成绩

如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。

score = float(input('请输入成绩: '))
if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
elif score >= 60:
    grade = 'D'
else:
    grade = 'E'
print('对应的等级是:', grade)

参考:
[1] Python 条件语句 | 菜鸟教程
[2] 分支结构

Python语法基础系列:
【Python】Python语法基础——数据类型
【Python】Python语法基础——分支结构 if…elif…else…
【Python】Python语法基础——循环结构 while、for-in【配合range(),enumerate()】,break,continue
【Python】Python语法基础——字符串,格式化字符串,字符串基本操作

你可能感兴趣的:(Python)