2.判断语句与循环语句
- Ture、False 关键字
- 比较运算符
- 逻辑运算符
- if 判断
- while 判断
- break 与 continue 关键字
- 循环中的 else
2.1 True 与 False
布尔类型只有两种结果
- Ture:表示 '真' ,通俗的说表示 '成立'
- False:表示 '假',通俗的说表示 '不成立'
have_money = True # 定义一个变量存储布尔类型数据True
have_friends = False # 定义了一个变量存储布尔类型数据False
作用:
因为布尔类型的数据只有2种结果,所以这种数据类型往往用在"判断"的场景。 简单示例如下:
have_money = True
if have_moeny:
print("你有钱啊,是否有才华就不一定哦...")
else:
print("是否有才华不一定,但一定没有钱,^_^...")
2.2 比较运算符
如果定义一个变量直接赋值为True或者False这种场景有,但有时我们需要让程序自己计算某个表达式,这个式子的结果是True或者False。这样,在配合上if或者while等应用就会显得更加灵活
比较运算符的分类
| 比较运算符 | 描述 | 示例 |
|---|---|---|
| == | 检查两个操作数的值是否相等,如果是则条件变为真。 | 如a=3,b=3,则a == b为True |
| != | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3,则a != b为 True |
| < | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则a < b 为 False |
| > | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则a > b为 True |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则a >= b为 True |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则a <= b为 True |
比较运算符的结果
比较运算符的结果一定是True或者False
100 > 50 # 结果就是True
100 < 50 # 结果就是False
2.3 逻辑运算符
引入
通过比较运算符我们知道,当比较数据大小、是否相等时,可以直接用>、<、==、!=、>=、<=来操作 但是,有很多时候不仅仅是简单的对比大小还有:并且、或者、不 举个例子: 成年并且女性 本科生或者研究生 不是18周岁以下学生 为了能够实现并且、或者、不,Python提供了逻辑运算符 and实现并且的功能 or实现或者的功能 not实现不的功能
并且`、`或者`、`不`是为了大家好理解,我给它们起的名字,但是专业术语中把它们称之为:`与`、`或`、`非
逻辑运算符的简单使用
and 实现与的功能,通俗的说就是并且 一般的用法:两边都为True,结果才为True
100 > 50 and 90 < 200 # 100 > 50结果为True 90 < 200结果为True,就相当于 True and True 所以最后结果是True
or 实现或的功能,通俗的说就是或者 一般的用法:两边只要有一个True,结果就为True
100 > 50 or 90 > 200 # 100 > 50结果为True 90 > 200结果为False,就相当于 True or False 所以最后结果是True
not 实现非的功能,通俗的说就是不 一般的用法:之前结果为True,那么not True就是False,如果之前是False,那么not False就是True
not (100 > 50) # 结果为False,本来100>50的结果是True,但前面加了not就相当于反义,所以最后结果为False
not (100 < 50) # 结果为True, 本来100<50的结果是False, 但前面加了not其反义的作用,所以最后结果是True
| 逻辑运算符 | 表达式 | 描述 | 实例 |
|---|---|---|---|
| and | x and y | 布尔"与":如果 x为False,x and y返回False,否则它返回 y 的值 | True and False, 返回False |
| or | x or y | 布尔"或":如果 x 是True,它返回True,否则它返回 y 的值 | False or True, 返回True |
| not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True | not True 返回False, not False 返回 True |
2.4 if 判断语句
基本使用
if是用来进行判断的,其使用格式如下:
#if 要判断的条件:
# 条件成立时,要做的事情
age = 30
print('----if判断开始----')
if age >= 18:
print('已经成年了') # 当前代码处有缩进 缩进为4个空格 一个Tab键
print('----if判断结束----')
注意:
- if判断总体来说:当条件满足后就要做某些事情,这些事情以及if它们是一个整体
- 如果if条件成立后,要做的事情有很多,那么都需要在行首缩进4个空格(只需要敲一个tag键,Pycharm就会自动换行为4个空格)
age = 30
print('----if判断开始----')
if age >= 18:
# 如果当前条件不成立则以下三句print都不会打印
print('我已经成年了')
print('我该懂事了')
print('尽快学完python开发出去赚钱了')
print('----if判断结束----') # 此处代码没有缩进 表示当前打印语句不在if语句控制范围之内,无论if条件是否成立都会执行
2.5 else 判断子句
if 条件:
满足条件时要做的事情1
满足条件时要做的事情2
满足条件时要做的事情3
...(省略)...
else:
不满足条件时要做的事情1
不满足条件时要做的事情2
不满足条件时要做的事情3
...(省略)...
2.6 elif 判断子句
if 条件1:
事情1
elif 条件2:
事情2
elif 条件3:
事情3
# ...省略N个条件...
elif 条件n:
事情n
else:
以上条件都满足时执行的代码
2.7 if 嵌套
if 条件1:
满足条件1时可以做的事情
满足条件1时可以做的事情
...
if 条件2:
满足条件2时可以做的事情
满足条件2时可以做的事情
...
2.8 if 代码案例
import random
player = input('请输入:剪刀(0) 石头(1) 布(2):')
player = int(player)
# 生成一个随机整数:0、1、2 中的某一个
computer = random.randint(0,2)
# 用来进行测试
#print('player=%d,computer=%d',(player,computer))
if ((player == 0) and (computer == 2)) or ((player == 1) and (computer == 0)) or ((player == 2) and (computer == 1)):
print('获胜,哈哈,你太厉害了')
elif player == computer:
print('平局,要不再来一局')
else:
print('输了,不要走,洗洗手接着来,决战到天亮')
2.9 while 循环
# while 条件:
# 条件满足时,做的事情1
# 条件满足时,做的事情2
# 条件满足时,做的事情3
# ...(省略)...
i = 0
while i < 10000:
print(i)
i += 1
2.10 while 循环应用
# 1. 计算1~100的累积和(包含1和100)
i = 1
sum_ret = 0
while i <= 100:
sum_ret = sum_ret + i
i += 1
print("1~100的累积和为:%d" % sum_ret)
# 2. 计算1~100之间偶数的累积和(包含1和100)
i = 1
sum_ret = 0
while i <= 100:
if i % 2 == 0:
sum_ret = sum_ret + i
i += 1
print("1~100之间偶数和为:%d" % sum_ret)
# 3. 实现计算1~100之间能被3整除且能够7整除的所有数之和
i = 1
sum_ret = 0
while i <= 100:
if i % 3 == 0 and i % 7 == 0: # 在这里进行判断 是否是满足 被3整除且能够7整除
sum_ret = sum_ret + i
i += 1
print("1~100之间能被3整除且能够7整除的所有数之和:%d" % sum_ret)
2.11 while 循环嵌套
# while 条件1:
# 条件1满足时做的事情1
# 条件1满足时做的事情2
# 条件1满足时做的事情3
# ...
# while 条件2:
# 条件2满足时做的事情1
# 条件2满足时做的事情2
# 条件2满足时做的事情3
# ...
注意:
- while循环嵌套运行时的特点:每次外层循环执行1次,内层循环执行全部
- while循环嵌套可以无限次的嵌套,但一般情况下不超过3层while循环嵌套
- 当外层while条件不满足时表示整个while循环嵌套结束
2.12 for 循环
# for 临时变量 in 列表或者字符串等可迭代对象:
# 循环满足条件时执行的代码
for i in range(5):
print(i)
2.13 break 与 continue
- break,用来结束整个循环
- continue,用来结束本次循环
# while 中使用 break
i = 0
while i<5:
print('----')
i = i+1
break
print(i)
- break、continue只能用在循环中,除此以外不能单独使用
- break、continue在嵌套循环中,只对最近的一层循环起作用
- break能够立刻结束所在的循环
- continue的用来结束本次循环,紧接着执行下一次的循环
- 无论break放到while循环体中的任何位置,只要被执行一次,那么整个循环立刻结束
2.14 循环中的 else
i = 3
while i > 0:
password = input("请输入密码:(还剩%d次机会)" % i)
if password == "123456":
print("密码输入正确")
break
i -= 1
login_flag = False # 定义一个变量,用来存储是否登录成功,True表示成功 False表示不成功
i = 3
while i > 0:
password = input("请输入密码:(还剩%d次机会)" % i)
if password == "123456":
login_flag = True # 如果登录成功,那么这里就改为True
break
i -= 1
# 当上述的while循环结束后,判断login_flag的值,来输出对应的信息
if login_flag == True: # 简单的写法是if login_flag:
print("密码输入正确")
else:
print("密码输入不正确,今日3次机会已用完,请明天再试...")
# while...else... 的使用方式
# while 条件:
# 条件满足时执行的代码...
# else:
# 如果上述的while循环没有调用break,就执行的代码...
i = 1
while i <= 3:
print("这是一段测试信息...")
if i == 1:
print("调用了break")
break
i += 1
else:
print("我是else中的代码")