学习目标:
1.;
2.。
学习内容:
一、 什么是条件控制
- python 的条件控制是根据一个或多个条件判断,决定执行的一条代码或多条代码块。其最基本的结构如下:
- python 条件判断的基本格式为
if 条件判断语句 : # 注意在条件判断语句后一定要加':'
条件为真时执行语句
[else: # 注意在else后也一定要加':'
条件为假时执行语句] # 此段语句也可以省略,如果条件为假不执行
- python 用
elif
代替else if
用于条件1不满足时,判断条件2是否满足,其执行流程和基本语法如下:
执行流程:
基本语法:
if 条件1判断语句 : # 注意在条件判断语句后一定要加':'
条件1为真时执行语句
elif 条件2判断语句 :
条件1为假条件2为真时执行语句
[else: # 注意在else后也一定要加':' # 如果要执行都为假时语句,前不加方括号
条件为假时执行语句] # 此段语句也可以省略,如果条件为假不执行
实例:判断输入的数中是否包含‘3’
a = input('请输入一个数字:')
if '3' in a:
print('{}里包含数字3。'.format(a))
else:
print('{}里不包含数字3。'.format(a))
注: python 的代码块是以相同缩进来定义,并非像 c 语言等以大括号来定义代码块。
二、if 语句常用操作符
注:python 中操作符可以像日常生活中一样并列使用。如 0 < a <= 10 表示:变量 a 大于0同时小于等于10。
三、if 语句的嵌套
- python 中没有像其他语言一样的
switch case ……
语句,但在一个if
语句中,可以有多个elif
语句。
如果要判断一个整数是否是 2、3、5 的倍数,只要满足其中一项时,就输出是 X 的倍数,可以用:
a = int(input('请输入一个整数')) # 输入一个数并将其转化为整数
if a % 2 == 0: # 判断输入的数与2的余数是否为0
print('{}是2的倍数。')
elif a % 3 == 0:
print('{}是3的倍数。')
elif a % 5 == 0:
print('{}是5的倍数。')
- python 的 if 语句也可以像其他语言一样嵌套使用
同上,如果要判断一个整数是否是 2、3、5 的倍数,输出是 2、3、5中某一项或 几项 的倍数
a = int(input('请输入一个整数:')) # 输入一个数并将其转化为整数
b = [] # 定义一个列表变量,用于存储因数
if a % 2 == 0: # 判断输入的数与2的余数是否为0
b.append('2')
if a % 3 == 0: # 当是2的倍数时判断是否是3的倍数
b.append('3')
if a % 5 == 0:
b.append('5')
elif a % 3 == 0: # 当不是2的倍数是判断是否是3的倍数
b.append('3')
if a % 5 == 0:
b.append('5')
else:
if a % 5 == 0:
b.append('5')
if len(b) > 0:
print('{} 是 {} 的倍数。'.format(a, '、'.join(b))) # join()函数,将前一个字符插入字符串列表元素之间
else:
print('{}不是2、3、5的倍数。'.format(a))
当输入60时,运行结果:
要点回顾
- python 语句的代码块是以相同缩进量来表示的,缩进量可以是 相同空格 ,或者 相同制表符;
- 每一个条件判断语句(含
else
语句)后都需接 冒号 (:
); - python 中没有 switch 条件判断语句;
- 正确使用
and
和or
能帮助我们简化判断语句。
拓展练习
百度得知:猫和人的年龄换算方法为(“猫咪1岁=人类15岁 ;2-5岁(成年):猫龄x6+15 ;6-10岁(中老年):猫龄x5+20 ;11-15岁(老年):猫龄x4+30 ;16-20岁(老年):猫龄x3+45),编写程序:输入猫的年龄,输出“你家的猫咪相当于人类XX岁了。”
nl = input('请输入你家猫咪的年龄:')
if nl.isdigit(): # 判断输入的字符是否都是数字
nl = int(nl)
if nl == 1:
nl = 15
print('你家的猫咪相当于人类{}岁了。'.format(nl))
elif 2 <= nl <= 5:
nl = nl * 6 + 15
print('你家的猫咪相当于人类{}岁了。'.format(nl))
elif 6 <= nl <= 10:
nl = nl * 5 + 20
print('你家的猫咪相当于人类{}岁了。'.format(nl))
elif 11 <= nl <= 15:
nl = nl * 4 + 30
print('你家的猫咪相当于人类{}岁了。'.format(nl))
elif 16 <= nl < 38:
nl = nl * 3 + 45
print('你家的猫咪相当于人类{}岁了。'.format(nl))
else:
print('你家猫咪年龄超过吉尼斯记录的最长寿猫咪了,快去给它申请吧!!!')
else:
print('输入错误,程序退出!!!') # 包含非数字,退出