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成对的

 

posted @ 2020-09-14 20:14  紫陌红尘雪落无声  阅读(3451)  评论(0编辑  收藏  举报