Python:if 语句

目录

条件测试

if 语句

if-else 语句

三元操作符

if-elif-else 结构

if 语句与列表


条件测试

每一条 if 语句的核心都是一个值为 True 或 False 的表达式,这种表达式称为条件测试
Python 程序语言指定任何 非0 和 非空(null)值为 True,0 或者 null 为 False

比较关系运算符:==  !=  <  <=  >  >=

逻辑运算符:and、or 检查多个条件
and:每个条件都是 True,表达式 True;至少有一个条件 False,表达式 False;
or:至少有一个条件 True,表达式 True;每个条件都是 False,表达式 False。

成员运算符:in、not in

布尔表达式:True、False。布尔类型可以当作整数对待,True = 1、False = 0。

>>> True + True    # 1+1
2

>>> True + False    # 1+0
1

>>> True * False    # 1*0
0

if 语句

Python 根据条件测试的值为 True 还是 False 来决定是否执行 if 语句中的代码:True,执行;False,忽略。执行内容可以多行,以缩进来区分表示同一范围。

if 判断条件:
    为 True 执行的语句(为 False 忽略)……

if-else 语句

基本形式:

if 判断条件:
    为 True 执行的语句……
else:
    为 False 执行的语句……

else 为可选语句,在条件不成立时执行相关语句:

cars = ['audi', 'bmw', 'subaru', 'toyota']

for car in cars:
    if car == 'bmw':    # == 为 True
        print(car.upper(), end = ' ')
    else:
        print(car.title(), end = ' ')
        
print('')    # 换行

for car in cars:
    if car != 'bmw':    # != 为 True
        print(car.upper(), end = ' ')
    else:
        print(car.title(), end = ' ')

'''输出结果:
Audi BMW Subaru Toyota 
AUDI Bmw SUBARU TOYOTA 
'''

三元操作符

N元操作符:这个操作符有多少个操作数。如:
  负号(-):一元操作符,只有一个操作数;
  等号(=):二元操作符,等号左右两个操作数。

三元操作符有三个操作数,语法:a = x if 条件 else y 。可以用一条语句完成条件判断和赋值操作,如:

x = '777 * 888'
y = '666 * 999'

if eval(x) < eval(y):
    print('x is smaller,', x, '=', eval(x))
else:
    print('y is smaller,', y, '=', eval(y))

'''输出结果:
y is smaller, 666 * 999 = 665334
'''
# 上例使用三元操作符
x = '777 * 888'
y = '666 * 999'
print('x is smaller,',x,'=',eval(x)) if eval(x) < eval(y) else print('y is smaller,',y,'=',eval(y))
#|—————————————True执行————————————|  |——————if条件——————| else |————————————False执行————————————|

if-elif-else 结构

elif:Python 中可用 elif  代替 else if。

if-elif-else 结构用于判断超过两个的情形。Python只执行 if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件,即执行其后代码块,并跳过余下的测试。

if 条件1:
    【条件1为 True】执行…
elif 条件2:
    【条件1为 False】且【条件2为 True】执行…
else:
    【条件2为 False】执行…

【实例】门票,18岁以下半票¥50;18~59岁,全票¥100;60岁及以上免票。

# 方法一:堆砌 if 语句
age = int(input('请输入年龄:'))

if age < 18:
    print('半价票¥50')
if 18 <= age <= 59:
    print('全价票¥100')
if age > 59:
        print('免票¥0')
# 方法二:使用 else if
age = int(input('请输入年龄:'))

if age < 18:
    print('半价票¥50')
else:
    if 18 <= age <= 59:
        print('全价票¥100')
    else:
        print('免票¥0')
# 方法三:使用 elif,注意与方法二对比(格式、缩进)
age = int(input('请输入年龄:'))

if age < 18:
    print('半价票¥50')
elif 18 <= age <= 59:
    print('全价票¥100')
else:
    print('免票¥0')

方法一无论情况如何,都会遍历所有 if 语句,而 if-elif-else 结构不会。如果有可能符合多个条件、需要运行多个代码块需要用 if ,如果只想执行一个代码块用 if-elif-else 结构。

可以根据需要使用任意多个 elif 代码块,但结尾最多只能有一个else语句。else 可以根据需要用 elif 替代。

age = int(input('请输入年龄:'))

if age < 18:
    print('半价票¥50')
elif 18 <= age <= 59:
    print('全价票¥100')    
elif 60 <= age < 70:
    print('特价票¥20')
elif 70 <=age:
    print('免门票¥0')

if 语句与列表

利用列表为空返回 False 确定列表是否为空。

names = []

if names:    #为空则 False,非空则 True
    print('有人报名')    # True 执行
else:
    print('没人报名')    # False 执行

使用 if 对多个列表比对

bigcitys = ['上海', '北京', '广州', '深圳']
citys = ['厦门', '深圳', '上海', '珠海']

for city in citys:
    if city in bigcitys:
        print(city + '是一线城市')
        
    else:
        print(city + '非一线城市')

'''输出结果:
厦门非一线城市
深圳是一线城市
上海是一线城市
珠海非一线城市
'''

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值