逻辑运算符知识补充
1.and
- and(与):链接的多个条件必须都成立结果才成立(True)
- 连接的条件 如果不是一个具体的值 则需要自动转换成布尔值
print(1 == 2 and 3) # False
print(1 == 2) # False
- 由于and前面的运算得出的布尔值是True 所以and连接的条件最终的结果取决于后面的
- 如果后面的值是明确的数据值 那么直接返回该数据值(数据值对应的布尔值必须是True)
print(10 > 3 and 100) # 100
print(1 == 1 and 2 == 2) # True
print(1 == 1 and False) # False
print(True and 1 == 1) # True
print(1 and 10) # 10
2.or
- or(或):链接的多个条件有一个成立结果就成立(True)
print(1 == 1 or 111) # True
print(1 or 10 > 20) # 1
print(10 or 100) # 10
3.not
- not(非):将条件取反(原本是对的就变成错的 如果是错的就变成对的)
- 它的结果肯定是个布尔值
注意
- and和or连接的多个条件在返回具体结果的时候可能是布尔值也可能是数据值
- 我们在日常写代码的时候不需要纠结具体返回的是什么,直接当成布尔值处理
循环结构
1.while基本循环
- while循环
- while...break语句
- while...continue语句
- while...else语句
1.1.while循环
- while循环又叫条件循环
- while循环语法结构
while 条件:
code1
code2
……
- while条件:条件成立之后循环执行的子代码
- 先判断while后面的条件是否成立,如果成立就执行子代码
- 子代码运行完毕后,再次回到while后面的条件判断处,判断条件是否成立
- 如果成立继续运行子代码,完毕后再次判断while后面的条件是否成立
- 依次往复知道条件不成立才会结束
while True:
ame = input('name>>>:')
pwd = input('pwd>>>:')
if name == 'jason' and pwd == '123':
print('登录成功')
else:
print('用户名或密码错误')
# 定义一个计数器
count = 1
while count < 10:
print(123)
count += 1
print(count)
count += 1
count += 1
count += 1
print(count)
1.2.while...break语句
- break:表示终止本层循环,其他层的循环不受干扰
- 语法结构
while 条件:
code1
code2
break
code3
...
- 结束循环体的方式
1.自己写结束条件 利用while后面的条件判断
2.在循环体代码中添加关键字强制结束
while True:
name = input('name>>>:')
pwd = input('pwd>>>:')
if name == 'jason' and pwd == '123':
print('登录成功')
# 强制结束
break # 直接结束break所在的循环体 (结束本层循环)
else:
print('用户名或密码错误')
- 验证一个break只能结束它所在那一层的循环体代码
while True:
print('我是外层的循环')
while True:
print('我是内层的循环')
break
break
1.3.while...continue语句
- continue:表示跳过本次循环,接下来继续执行本层循环
- 循环打印1到10(按规矩办事) 但是到了7就跳过
count = 1
while count < 11:
if count == 7:
# 让count自增1
count += 1
# 跳过本次循环 直接开始下一次循环
continue
print(count)
count += 1
- 结束本次循环 直接开始下一次循环(也只影响所在的那一层循环而已)
while True:
print(123)
while True:
print(321)
continue
continue
1.4.while...else语句
- 定义:如果while循环没有被break掉,则执行else内部代码
count = 1
while count < 11:
print(count)
if count == 7:
break
count += 1
else:
print('循环体按照提前定义好的条件正常结束 则会执行')
2.死循环与全局标志位
2.1.死循环
count = 10
while True:
count *= 10 # 计算死循环 不允许出现 有问题
while True:
name = input('name>>>:') # 有等待时间 允许出现 没有问题
2.2.全局标志位(可以不用)
flag = True
while flag:
print(123)
while flag:
print(321)
while flag:
print(222)
flag = False
作业
1.准确说出下列判断的结果(不要执行代码)
v1 = 1 or 3 # 1
v2 = 1 and 3 # 3
v3 = 0 and 2 and 1 # 0
v4 = 0 and 2 or 1 # 1
v5 = 0 and 2 or 1 or 4 # 1
v6 = 0 or False and 1 # False
2.编写一个用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序


3.编写一个用户登录程序
用户如果登录失败 可以无限制尝试
用户如果登录成功 则进入内层循环 获取用户输入的指令 并打印该指令
eg: 用户输入cmd指令 则程序打印'正在执行您的指令:cmd'
给用户提供一个退出命令 用户一旦输入则退出这个程序
eg: 用户输入q指令 则程序先打印该指令再结束


4.编写猜年龄的游戏(拔高练习 尝试编写)
用户有三次猜测的机会 如果用完则提示用户是否继续尝试
用户输入y则继续给三次机会 如果用户输入q则直接结束程序


posted on
浙公网安备 33010602011771号