逻辑运算符、循环结构之while循环

逻辑运算符知识补充

  • 连接的条件如果不是一个具体的值,则需要自动转换成布尔值
	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
	

image

  • 解释:第一个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

image

posted @ 2022-06-22 18:54  荀飞  阅读(163)  评论(0编辑  收藏  举报