在现实生活中,我们经常需要做出选择。做出选择要依据一定的条件,是否达到条件会导致不同的结果。
在用编程解决问题时,经常遇到这种根据条件作出判断的情况,这就需要用到程序设计中的选择结构。
选择结构是通过判断条件是否成立来决定程序流程的控制结构。有三种形式:
单分支选择结构 if 语句;
双分支选择结构 if...else... 语句;
多分支选择结构 if...elif...else 语句;
< 1 >
单分支选择结构 if 语句
if 条件表达式: 语句块 和其它程序设计语言采用大括号“{ }”分隔代码块不同,Python 用冒号( : )和代码缩进来区分代码之间的层次。 Python 对代码的缩进要求非常严格,同一个级别的代码必须对齐。代码的缩进可以使用空格或者 Tab 键实现,通常采用 4 个空格作为一个缩进量。例1:
设计一个模拟闹钟的程序,从键盘输入一个数(1-24),若输入的数字为6,则输出“叮叮叮,该起床了。”,若不是6,则不输出。time = input("现在几点:")time = int(time)if time == 6: print("叮叮叮,该起床了。")
在以上程序中,“=”与“==”的作用是不同的,“=”是赋值运算符,作用是把右边的值赋给左边的变量,“==”是比较运算符,作用是比较左右两边是否相等。若相等,即表达式成立,则返回“True”,若不相等,即表达式不成立,则返回“False”。time == 6 是否成立要看变量 time 的值是几,而变量 time 的值是由 input()函数获取到的,所以,time == 6 是否成立最终要看从键盘输入的数值是几。
< 2 >
双分支选择结构 if...else... 语句
if 条件表达式: 语句块1 else: 语句块2如果条件表达式成立(值是True),那么执行语句块1。
否则(值是False),就执行语句块2。
例2:
设计一个验证密码的程序,已知密码是abc123,当从键盘输入密码正确时,显示“密码正确,欢迎您!”,输入密码错误时,显示“密码错误,请重新输入”。password = input("请输入密码:")if password == "abc123": print("密码正确,欢迎您!") else: print("密码错误,请重新输入。")
< 3 >
多重选择结构 if...elif...else 语句
if 条件表达式 1:
语句块 1
elif 条件表达式 2:
语句块 2
elif 条件表达式 3:
语句块3
... ...
else:
语句块 n
多重选择结构用于解决有多个条件需要判断的问题,这些条件会从上到下按顺序依次判断,如果某个条件判断为成立,执行完对应的语句块,后面的条件判断就直接忽略,不再执行。也就是说多个分支中只有一个分支会被执行。例3:
人生的不同阶段:婴儿期(0~3岁)、幼儿期(3~6岁)、儿童期(6~12岁)、青少年期(12~18岁)、成年期(18-60岁左右)、60以后为老年期。 编一个程序,从键盘输入一个年龄的值,根据年龄的值判断处于人生哪个阶段。age = int(input("请输入你的年龄:"))if age<3: stage = "婴儿期"elif age>=3 and age<6: stage = "幼儿期"elif age>=6 and age<12: stage = "儿童期"elif age>=12 and age<18: stage = "青少年期"elif age>=18 and age<60: stage = "成年期"else: stage = "老年期"print("你正处于:" , stage )
不同的问题需要不同的解决方法,在实际应用中,一个 if 语句就可以解决的问题,那就用单分支选择结构;若有两种情况,那就双分支;如果有多个条件需要判断,就用多分支选择结构。总之,用最适合的方法去解决对应的问题是最好的选择。
练习
1、编一个程序,从键盘输入一个整数,判断这个数是不是 7 的倍数,如果是则输出Yes,不是则输出No。
提示:
n % 7 == 0# 若n除以7的余数等于0,则n就是7的倍数。
2、编一个程序,从键盘输入一个年份,判断是否为闰年。
闰年的判断方法,符合下列条件之一的年份即为闰年:
能被 4 整除而不能被 100 整除的为闰年。
能被 400 整除的是闰年。
参考代码(方法之一,大家可以思考其它更好方法):
y = int(input("请输入年份:"))if y % 4 == 0 and y % 100 != 0: print( y ,"是闰年")elif y % 400 == 0: print( y ,"是闰年")else: print( y ,"不是闰年")
3、考试成绩可以用等级A、B、C、D表示,这四个等级对应的分数是:
A:大于等于85分;B:大于等于75分,小于85分;C:大于等于60分,小于75分;D:小于60分;编一个程序,从键盘输入分数,输出对应的等级。 ---------- 写代码 ;调试代码;修改代码 ; -------------------- End ----------
---- 本文中视频为原创 ----