一、用数据做判断:布尔值
- 计算机的判断,只有两种结果,要么是True(条件为真), 要么为False(条件为假)。
- True与False叫做布尔值,这个判断真假的过程,叫做【布尔计算】。
>>> print(3<6)
True
>>> print(3>6)
False
>>> print('北京'=='北京')
True
>>> print('北京'=='首都')
False
>>>
- print() 语句中的计算就是【布尔计算】,终端上要么显示True,要么显示False。
- 只有当条件为False时,if与while才会结束循环执行后面的语句。
while False:
print('我是Fasle,打印不出来')
# 因为条件为False,终端中什么都不会打印
二、布尔运算的三种方式
1、两个数值做比较。主要包含以下情况:
2、直接用数值做计算
在Python江湖中已经设定好什么数据为真,什么数据为假。假的是有限的,那么除了假的,就都是真的。
if '开心':
print('北京')
if 0:
print('首都')
# 请阅读代码后再直接运行
print('以下数据判断结果都是【真】:')
print(bool(True))
print(bool(10))
print(bool('xyz'))
print('以下数据判断结果都是【假】:')
print(bool(False))
print(bool(0))
print(bool(''))
print(bool(None))
if '开心':
print('北京')
if 0:
print('首都')
-
bool()函数
>>> print(bool(True)) True >>> print(bool(10)) True >>> print(bool('xyz')) True >>> # 分割线===================================================================== >>> print(bool(False)) False >>> print(bool('')) False >>> print(bool(0)) False >>> print(bool(None)) False >>>
3、布尔值之间的计算
a =5
b =-5
print('以下是and运算:')
if a==5 and b==5: # 实际b等于-5
print('True')
else:
print('False')
print('以下是or运算:')
if a==5 or b==5: # 实际b等于-5
print('True')
else:
print('False')
# 输出结果如下:
# 以下是and运算:
# False
# 以下是or运算:
# True
- and
- or
x=6
y=-5
z=0
q=10
if x<y and z<q:
print('True')
else:
print('False')
# 输出结果:False
- not
-
in 和 not in
【in】的意思“判断一个元素是否在一堆数据之中”,【not in】相反。
list = [1,2,3,4,5] a =1 b =10 c =0 print(bool(a in list)) print(bool(b in list)) print(bool(c in list)) ''' True False False '''
4、布尔值运算小结
三、与循环搭配使用的四种语句
1、break语句
for i in range(1,10):
if i>5:
break
print(i)
```输出结果:
1
2
3
4
5
```
x=0
while x<10:
if x>4:
break
x=x+1
print(x)
```输出结果:
1
2
3
4
5
- 本来for循环与while循环是可以从1打印到10的,结果由于break, 只能从1打印到5,这就是break的作用。在循环内使用,用来结束循环。
2、continue语句
- 这个语句也是在循环内部使用的。当某个条件被满足的时候,触发continue语句,结束本次循环, 从下一次循环继续执行。
for i in range(1,10):
if i==5:
continue
print(i)
```输出结果:
1
2
3
4
6
7
8
9
···
x=0
while x<10:
x=x+1
if x==5:
continue
print(x)
```输出结果:
1
2
3
4
6
7
8
9
10
```
3、pass语句
- 就是理解中的”跳过"的意思。
age = int(input('请输入你的年龄:'))
if age >=18:
pass
else:
print('未满十八岁,不得进入网吧')
-
以上代码的意思:当age>=18的时候,跳过,什么都不做。其他情况age<18的时候,执行 print(‘你未成年,不得进入网吧’)语句。
-
pass语句就是占据一个位置“什么都不做”,满足我的条件,就跳过。通常用于代码还没构思好时,用来占位置使用的。
4、 else语句
for i in range(3):
num = int(input('请输入0结束循环,你有3次机会:'))
if num ==0:
print('你触发了break语句,导致else语句不会发生')
break
else:
print('3次机会你都错过了,else语句生效了')
# 分割线=============================================================================
num =0
while num<3:
x = int(input('请输入0结束循环,你有3次机会:'))
if x ==0:
print('你触发了break语句,导致else语句不会发生了')
break
num=num+1
else:
print('你三次机会都用完了,触发了else语句')
- 以上代码,可以做两种尝试:1、连续3次不输入0; 2、输入一次0跳出循环
- 当循环正常执行完毕(没有碰到break),就执行else语句
5、四种语句小结
四、知识点回顾
- 计算机用数据做判断的过程
- 比较运算符
- Python中的真假判断
- 两个数值做比较
- 直接用数值运算
- 布尔值之间的运算
- break continue pass else语句
五、其他补充:exit()、return
- exit():退出整个循环,无论有多少层循环,全部退出。
- return:结束函数,返回参数(需要注意的是,当执行return之后,函数return之后的语句将不会再继续执行下去,而是返回第一个循环的值)
各个跳出循环的示例详见如下代码
# pass示例
for i in range(5):
print(i)
pass
print(i*2)
print()
输出结果如下:
0
0
1
2
2
4
3
6
4
8
# return示例
def run():
for i in range(5):
print(i)
return i
print(i*2)
print()
run()
# 输出结果如下:
0
# continue示例
def run():
for i in range(5):
print(i)
continue
print(i*2)
print()
run()
# 输出结果如下:
0
1
2
3
4
# break示例
def run():
for i in range(5):
print(i)
break
print(i*2)
print()
run()
# 输出结果如下:
0
# break示例
def run():
for i in range(5):
print(i)
exit()
print(i*2)
print()
run()
# 输出结果如下(exit()以上的代码执行完后,退出了所有循环):
0
六、练习
- 老爷爷在与葫芦娃兄弟玩一个小游戏,就是老爷爷在心里想好一个数,比如7,然后让葫芦娃兄弟猜。如果他猜的数比7小,告诉他“太小了”,如果他猜的数比7大,告诉他“太大了”。如果猜对了,给猜出来的葫芦娃一个苹果。
# 设定秘密数字
num = 7
# 设置循环
while True:
# 设置输入的内容
guess = int(input('小葫芦,你们猜猜数字是多少:'))
# 当输入的内容等于秘密数字时,打印正确,并中止循环
if guess == num:
print('BINGO,你猜对了!给你一个苹果!')
break
# 当输入的内容大于秘密数字时,打印提示:太大了
elif guess > num:
print('你猜得太大了,再重新猜一猜~')
# 当输入的内容小鱼秘密数字时,打印提示:太小了
elif guess < num:
print('你猜得太小了,再重新猜一猜~')
-
大家在酒桌上玩游戏,从1开始数数,凡是3的倍数,都要跳过去,不说话。
写一个循环,从1,2,3循环到20开始打印;当遇到3的倍数时,直接跳过,继续打印下面内容。打印结果是【1,2,4,5,7,8,10,11,13,14,16,17,19,20】
# 设定1-20的数字循环
for num in range(1,21):
# 当数字是3的倍数时,跳过去
if num%3==0:
continue
# 当数字不是3的倍数时,打印出来
else:
print(num)
# 分割线=======================================================
# 设定1-20的数字循环
num = 0
while num <=20:
num=num+1
# 当数字是3的倍数时,跳过去
if num%3==0:
continue
# 当数字不是3的倍数时,打印出来
else:
print(num)