【Python编程入门】Lecture 5:if语句

5.1 布尔表达式

5.1.1 布尔变量与布尔表达式

布尔变量是有两种逻辑状态的变量,它包含真(True)和假(False)两个值,某些编程语言也用1表示真,0表示假。值为布尔变量的表达式称为布尔表达式
举几个例子:
布尔表达式 1+2=3 的值为True
布尔表达式 1+3>5 的值为False
布尔表达式 1≠4 的值为True

5.1.2 比较运算符

Python中的比较运算符:
等于号(==)
不等于号(!=)
大于号(>)
大于等于号(>=)
小于号(<)
小于等于号(<=)

car = 'Audi'
print(car == 'BMW')
print(car == 'audi')
print(car.lower() == 'audi')
print(car != 'BMW')
False
False
True
True

5.1.3 逻辑运算符

1、或(or)
当P、Q中有一个为True时,P or Q 为True;
当P、Q中均为False时,P or Q 为False;
2、与(and)
当P、Q中均为True时,P and Q 为True;
当P、Q中有一个为False时,P and Q 为False;
3、非(not)
当P为True时,not P 为False;
当P为False时,not P 为True;

print(3+1 == 4 or 5<3)
print(3+1 == 4 and 5<3)
print(not 5<3)
True
False
True

小结:

PQP or QP and Qnot P
TrueTrueFalseTrueTrue
TrueTrueFalseFalseFalse
FalseTrueTrueFalseTrue
FalseFalseTrueFalseFalse

运算优先级:或<与<非<括号

print(3+1 == 4 and not 5<3)
print(4>3 or 3+1 == 4 and 5<3)
print((4>3 or 3+1 == 4) and 5<3)
True
True
False

5.1.4 检查列表是否包含特定值

1、检查包含:使用关键字in
布尔表达式:value in list
注:若列表中包含该值,可以使用.index()方法获取该值的索引,如果该值多次出现,只能获取其第一次出现的索引。
2、检查不包含,使用关键字 not in
布尔表达式:value not in list

numbers = list(range(1,11))
print(11 in numbers)
print(11 not in numbers)
rapstars = ['XMASwu','bbnoS','Rich Brian','bbnoS']
print('bbnoS' in rapstars)
print('bbnoS' not in rapstars)
print(rapstars.index('bbnoS'))
False
True
True
False
1

5.2 if语句

5.2.1 简单的if语句(单分支结构)

if语句的基本结构是
if 布尔表达式 :(冒号)
(缩进) 代码

如果布尔表达式的值为True,则Python就会执行if语句后面的代码;否则,Python将忽略这些代码。

举个例子,某公园推出未成年人可购买10元的优惠门票,现在某游客的年龄为17岁。

age = 17
if age < 18:
    price = 10
print(price)
10

5.2.2 if-else语句(二分支结构)

if-else语句的基本结构是
if 布尔表达式 :(冒号)
(缩进) 代码1
else :(冒号)
(缩进)代码2

如果布尔表达式的值为True,则Python就会执行if语句后面的代码1;否则,Python将将执行else后面的代码2。

继续上一个例子,该公园的全票价格为30元,现在某游客的年龄为20岁。

age = 20
if age < 18:
    price = 10
else:
    price = 30
print(price)
30

5.2.3 if-elif-else结构(多分支结构)

if-elif-else语句的基本结构是
if 布尔表达式1 :(冒号)
(缩进) 代码1
elif 布尔表达式2 :(冒号)
(缩进) 代码2
else :(冒号)
(缩进)代码3

中间的elif结构可以有多个,Python依次检查每个布尔表达式,直到遇到了值为True的布尔表达式,则执行其后相应的代码,并跳过余下测试。

继续上一个例子,该公园推出60岁及以上老人半价、70岁及以上老人免票的活动,现在某游客的年龄为65岁。

age = 65
if age < 18:
    price = 10
elif age >= 60 and age <70:
    price = 15
elif age >= 70:
    price = 0
else:
    price = 30
print(price)
15

5.2.4 省略else代码块

Python并不要求if-elif结构后面必须有else代码块,在某些情况下,else代码块很有用;而在某些情况下,使用一条elif语句来处理特定情形更加清晰。

将上一个例子的else代码块用elif代码块代替

age = 65
if age < 18:
    price = 10
elif age >= 60 and age <70:
    price = 15
elif age >= 70:
    price = 0
elif age>=18 and age <60:
    price = 30
print(price)
15

实际上,只要不满足if和elif条件的任何情况,else语句后的代码都会被执行,这可能引入无效甚至恶意的数据,如果知道最终需要判断的条件,可以直接用elif代码块来代替else代码块。

5.2.5 if语句的代码格式

注意在比较运算符两边各添加一个空格。

5.3 使用if语句处理列表的例子

5.3.1 检查列表是否非空

可以运用列表充当if语句后面的布尔表达式,如果列表非空则该表达式的值为True,进而可以检查列表是否非空。

举个例子,如果要检查晚会是否邀请到了rapper。

rapstars = [] 
if rapstars:
    print('晚会已经有rapper了')
else:
    print('晚会没有rapper')
晚会没有rapper

5.3.2 检查特殊元素

如果bbnoS临时有事不能来,可以利用if语句处理欢迎语

rapstars = ['XMASwu','bbnoS','Rich Brian']
for rapstar in rapstars:
    if rapstar == 'bbnoS':
        print('bbnoS临时有事不来了。')
    else:
        print(f"欢迎{rapstar}!")
欢迎XMASwu!
bbnoS临时有事不来了。
欢迎Rich Brian!

5.3.3 使用多个列表

如果到了互动环节,由一位观众提出让某些rapper一起表演节目,但是某些假粉丝可能提出了不在场的rapper,此时可以这样给予回应。

rapstars = ['XMASwu','bbnoS','Rich Brian']
requested_rapstars = ['Rich Brian','Lambert']
for requested_rapstar in requested_rapstars:
    if requested_rapstar in rapstars:
        print(f'{requested_rapstar}即将登场!')
    else:
        print(f'{requested_rapstar}今天没来,你这个假粉丝hhh')
Rich Brian即将登场!
Lambert今天没来,你这个假粉丝hhh
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值