逻辑运算符知识补充
- 连接的条件如果不是一个具体的值,则需要自动转换成布尔值
print(1==2 and 3) #False
# print(1==2) 为False,所以为False
- 由于and前面的运算得出的布尔值是True,所以and连接的条件取决于后面的值,如果后面的值是明确的数据值,那么直接返回该数据值(数据值对应的布尔值必须是True)
print(0 and 2) # False
print(0 and False) # False
循环结构之while循环
while 条件:
条件成立之后循环执行的子代码
- 1.先判断while后面的条件是否成立 如果成立则立即执行子代码
- 2.子代码运行完毕之后,再次回到while后面的条件判断处 判断条件是否成立
- 3.如果成立则继续运行子代码 完毕后再次判断while后面的条件是否成立
- 4.依次往复 知道条件不成立才会结束
while+break
- 结束循环体的方式
- 1.自己写结束条件,利用while后面的条件判断
- 2.在循环体代码中添加关键字强制结束
while True:
name = input('name>>>:')
pwd = input('pwd>>>:')
if name == 'jason' and pwd == '123': print('登录成功')
# 强制结束
break # 直接结束break所在的循环体 (结束本层循环)
else:
print('用户名或密码错误')
while True:
print('我是外层的循环')
while True:
print('我是内层的循环')
break
break
- 解释:第一个break结束的是‘内层’的循环,第二个break结束的是‘外层’的循环。
while+continue
#循环打印1到10(按规矩办事) 但是到了7就跳过
count = 1
while count< 11:
if count ==7:
# 让count自增1
count +=1 # 如果不在此处自增,那么count会一直等于7,一直循环下去
continue
print(count)
count += 1
# 当if 条件执行之后,continue下面的代码就无法执行
while True: # 外层循环
print(123)
while True: # 内层循环
print(321)
continue
continue
# 输出为:123 321 321 321......
#因为continue内层的循环的continue下面没有任何代码对内层循环没有影响,内层会一直循环
while+else
count = 1
while count <11:
print(count)
if count ==7:
break
count +=1
else:
print('循环体按照提前定义好的条件正常结束 则会执行')
# 1,2,3,4,5,6,7
# 当count=7时,进入if循环被break关键字强制结束
死循环与全局标志位
count = 10
while True:
count *= 10 # 计算死循环 不允许出现 对电脑性能影响极大,很容易造成服务器或者电脑宕机
while True:
name = input('name>>>>:') # 有等待时机 允许出现 没有问题
flag = True:
while flag:
print(123)
while flag:
print(321)
while flag:
print(222)
flag = False
# 结果为: 123 321 222
"""
4.编写猜年龄的游戏(拔高练习 尝试编写) 用户有三次猜测的机会 如果用
完则提示用户是否继续尝试 用户输入y则继续给三次机会 如果用户输入q则直接结束程序
"""
count = 0
flag = True
while flag:
age = int(input('请输入小张的年龄:'))
if age == 22:
print('恭喜你猜对了')
break
else:
print('猜错了')
count += 1
if count >= 3:
print('对不起,你已经猜错3次了,还要在猜吗? y or q')
guess_continue = input('确定:y,结束:q')
if guess_continue == 'y':
count = 0
print('---------------------------')
elif guess_continue == 'q':
count = 0
print('下次再来猜吧')
flag = False
else:
pass