Python 条件语句(if..elif..else)
条件语句
一、if条件判断
1.if条件判断的基本形式
Python中,if语句用于控制程序的执行,基本形式为:
if 判断条件: 判断条件可为:逻辑、成员运算、比较运算
(缩进) 执行语句........ (当判断的条件成立时,就会执行if内的语句)
else: (else后面没有表达式)
(缩进)执行语句........ (当if条件不成立,则会执行else内的语句)
- "判断条件"成立时(非零),则执行其后面的语句,执行内容可以是多行,可以缩进来区分表示同一个范围
- else 为可选语句 在if判断条件不成立时,才会执行
- 缩进 遇到冒号就要缩进,这是语法,一个标椎的缩进等于四个空格,但是四个空格不等于一个tab键。Python中可以使用tab键,进行缩进,但是这种操作是不规范的,一般用的是4个空格
例子如下:(一个简单的 if....else 判断)
比较运算符的使用:
#根据输入的年龄来判断是否成年 my_age=int(input('请输入你的年龄:')) #input输入的数据类型为str if my_age>=18: print('你已经成年') else: print('你还未成年') 输出结果: 请输入你的年龄:14 你还未成年
成员运算符的使用:
#成员运算符和逻辑运算符的结合使用 my_str='苹果、橘子、香蕉、梨、葡萄' if ('苹果' and '葡萄') in my_str: print('苹果和葡萄是我最喜欢的水果之一') else: print('水果列表中没有我喜欢的水果') 输出结果: 苹果和葡萄是我最喜欢的水果之一
逻辑运算符的使用
#结合列表索引和比较运算符和逻辑运算符 a=[2,3,5,6] if (a[0]>a[1]) and a[1]>a[2]: print('列表中的前三个数字排列顺序是由大到小排列') else: print('列表中的前三个数字排列顺序是由小到大排列') 输出结果: 列表中的前三个数字排列顺序是由小到大排列
2. if....elif.....elif.....else....
在一个if表达式中,即一个完整的 if.....elif....elif.....else....中,如果运行了其中一个条件,其他分支条件就不会再运行了
总结:当其中一个条件满足,其他的条件分支自动屏蔽,不会再运行
''' 1、一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣, 如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣(%10或 20%)和最终价格。 ''' #先询问购买的价格,再做接下来的判断 price=int(input('请输入你的购买价格:')) if 50<=price<=100: #Discount享受的折扣价 Discount = price * 0.1 print('您将享受10%的折扣') print('您最终支付金额为:{}'.format(price - Discount)) elif price>100: # Discount享受的折扣价 Discount = price * 0.2 print('您将享受20%的折扣') print('您最终支付金额为:{}'.format(price - Discount)) else: print('您当前的不享受任何优惠')
''' 2 判断是否为闰年 提示: 输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况) 如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年” 什么是闰年,请自行了解(需求文档没有解释) ''' ''' 闰年分为:普通闰年和世纪闰年 普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年。(如2004年就是闰年); 世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年); ''' year=int(input('请输入一个有效的年份(如:2020):')) ''' 普通闰年:年份是4的倍数,且不是100的倍数 世纪闰年:必须是400的倍数 普通闰年的计算方法,能被4整除但不被100整除,year % 4==0 and year % 100!=0 世纪闰年的计算方法,能被400整除,year % 400==0 ''' if year % 4==0 and year % 100!=0: print('{}年是普通闰年'.format(year)) elif year % 400==0: print('{}年是世纪闰年'.format(year)) else: print('{}年不是闰年'.format(year))
3.if后面最关心的是什么? 判断条件语句是为真还是为假(也就是,是True还是False)
形式:if a:(其中隐含有bool(a),是True还是False)
- if not a: 用来判断某个变量是否为空,是否存在(实际使用过程中,使用的非常多的判断条件)
- a是None、0、[]、{}、().......等都为False 也就等同于if False:,也就是条件不成立,不会执行if条件下的语句,而是执行else下的语句
- a是非空类型,也就是等同于 if True:,也就是条件成立,直接执行if下的语句。(不会再去处理else下的语句)
- 条件语句为True
if True: print('我是对的') else: print('你是最厉害的') 输出结果: 我是对的
- 条件语句为False
if False: print('你是对的') else: print('我是最厉害的') 输出结果: 我是最厉害的
4.else是可选择语句 在判断条件不成立时,执行相关语句
else不是必备的,在条件判断中,加不加else,可以根据自己实际的业务逻辑进行使用。
5.if的嵌套使用
Python在运行一个文件时,会查看所有顶格写的代码。一个完整的if表达式只会看某一个满足条件的语句
''' 3.求三个整数中的最大值 提示:定义 3 个变量 ''' #先自定义3个变量并赋值 num1=6 num2=10 num3=20 if num1>num2: if num1>num3: print('最大值为:{}'.format(num1)) else: if num2>num3: print('最大值为:{}'.format(num2)) else: print('最大值为:{}'.format(num3)) 输出结果: 最大值为:20
6.工作中使用最多的结构:if......if ......if .....else
if 1: pass if 2: pass if 3: pass else: print('hello') #else是最后一个if成对的