逻辑运算符补充
and
- and连接的如果是运算,需将运算先转换为布尔值。
- and前的运算得出布尔值为True,则结果取决于and连接的末尾。
- and末尾是布尔值为True的数据值,会返回数据值。
- and前得出布尔值为False,则返回布尔值为False。
or
- or前的运算连接的布尔值为False,则结果取决后or连接的其他数据值。
- or前的运算连接的布尔值为True,则有具体数据值返回数据值,没有返回True。
not
- not输出的结果一定是布尔值。
当and与or混用时
- 混用时具体返回结果可能为布尔值也可能是数据值。(我们直接当布尔值处理即可)
while循环
while循环
- 1.判断while后面的条件是否成立,成立执行该循环的子代码。
- 2.子代码运行完之后,返回while后面的条件判断,判断条件是否成立。
- 3.如果成立继续执行此代码,结束后再次判断while后的条件是否成立。
- 4.如此循环重复,当while后的条件不成立时。循环结束。 例1:
while True:
user_id = input('用户名:')
user_key= input('密码:')
if user_id == 'tom' and user_key == '233':
print('超级用户')
else:
print('请检查用户名或密码后重试')
输出结果:
例2:
count = 2
while count < 11:
print('tom')
count += 3
输出结果:
以上while满足条件是可以一直打印,当条件不成立时会跳出循环。
while循环+break结束循环
当我们想要结束一个循环时:
- 1.我们可以给其加上判断条件。
- 2.我们可以在循环末尾加上关键词跳出当前循环。
break
例:
while True:
user_id = input('用户名:')
user_key= input('密码:')
if user_id == 'tom' and user_key == '233':
print('超级用户')
break
else:
print('请检查用户名或密码后重试')
输出结果:
- 当我们添加了break给输入正确的用户名强制结束时,会直接结束程序。
- 另一边的输入错误的用户名密码,由于没有添加break,会循环此操作,直至用户名密码输入正确后跳出此循环。
注:一个循环体只能结束她所在的那一层代码。
例:
- 当我们去除最外层的break时,循环无法结束,就会出现一直打印输出的现象。
while循环+continue结束循环
- 在一个循环体中加入continue后可结束某一次循环,去执行下一次循环。 例:
count = 2
while count < 13:
if count == 5: # count = 5 时会跳过当前循环进行下一轮循环直至结束
count += 3
continue
print(count)
count += 3
输出结果:
- 我们可以看到本来应该打印出来的5结束了循环。
- continue只会影响其所在的一行循环。
while循环+else
- while条件满足执行while,不满足则会执行else下的子代码
count = 1
while count <= 10:
if count == 7:
count += 1
continue
print(count)
count += 1
else:
print('循环体按照提前定义好的条件正常结束 则会执行')
死循环与全局标志位
死循环:
- 计算机中涉及了数值的计算时,死循环是不允许出现的。当计算机在打印一些需要输出的字符串是时可以出现的。 全局标志位:
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 #False
v4 = 0 and 2 or 1 #False
v5 = 0 and 2 or 1 or 4 #False
v6 = 0 or False and 1 #False
2.编写一个用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序
- 输入代码
count = 1
while count < 4:
user_id = input('用户名:')
user_password = input('密码:')
if user_id == 'tom' and user_password == '233':
print('登录成功')
break
else:
print('登录失败')
count += 1
- 流程图
- 输出结果:
1:登录成功
2:登录失败
3.编写一个用户登录程序
用户如果登录失败 可以无限制尝试
用户如果登录成功 则进入内层循环 获取用户输入的指令 并打印该指令
eg: 用户输入cmd指令 则程序打印'正在执行您的指令:cmd'
给用户提供一个退出命令 用户一旦输入则退出这个程序
eg: 用户输入q指令 则程序先打印该指令再结束
- 流程图:
- 输入代码
while True:
user_id = input('用户名:')
user_password = input('密码:')
if user_id == 'tom' and user_password == '233':
print('登录成功')
while True:
instruct = input('>>>')
if instruct == 'cmd':
print('正在执行您的指令:cmd')
elif instruct == 'q':
print('>>>q')
break
else:
print('无效的指令!')
else:
print('登录失败')
- 输出结果:
4.编写猜年龄的游戏(尝试编写)
用户有三次猜测的机会 如果用完则提示用户是否继续尝试
用户输入y则继续给三次机会 如果用户输入q则直接结束程序
-
输入代码
-
流程图:
-
输出结果: