【python基础】第07回 运算符和流程控制 2

本章内容概要

1.逻辑运算符补充

2.循环结构

本章内容详解

1.逻辑运算符补充

两边都不为0的情况 or 直接取前面的值  and 直接取后面的值
如果存在0的情况 and 直接取0 or 直接取非0
print( 1 == 2 and 3)  # False
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
print(0 and 2)  # 0
print(0 and 2 and 1)   # 0
print(1 == 1 or 111)  # True
print(1 or 10 > 20)  # 1
print(10 or 100)  # 10
print(0 and 2 or 1)  # 1
print(0 and 2 or 1 or 4)  # 1
print(0 or False and 1)  # False
print(0 and 1 or 2 or 3 and 4)  # 2
print(0 and 1 or 2 and 3 or 4)  # 3
print(1 == 2)  # False
# 连接的条件 如果不是一个具体的值 则需要自动转换成布尔值
print(10 > 3 and 100)  # 100
'''
由于and前面的运算得出的布尔值是True 所以and连接的条件最终的结果取决于后面的 如果后面的值是明确的数据值 那么直接返回该数据值(数据值对应的布尔值必须是True) and和or连接的多个条件在返回具体结果的时候可能是布尔值也可能是数据值 我们在日常写代码的时候不需要纠结具体返回的是什么 直接当成布尔值处理
'''

2.循环结构

什么是循环结构?

循环结构就是重复执行末段代码块。

2.1 循环结构这while循环

while 判断条件:
      执行的子代码
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假 false 时,循环结束。

流程图

1.先判断while后面的条件是否成立 如果成立则执行子代码
2.子代码运行完毕之后 再次回到while后面的条件判断处 判断条件是否成立
3.如果成立则继续运行子代码 完毕后再次判断while后面的条件是否成立
4.依次往复 直到条件不成立才会结束

例1:

while True:
    username = input("username>>:")
    password = input("password>>:")
    if username == 'zhang' and password == '123':
        print("成功")
    else:
        print("失败")
# 条件为True 无限循环

2.2 whlie+break

结束循环体的方式
1.自己写结束条件 利用while后面的条件判断
2.在循环体代码中添加关键字强制结束

例2:

count = 1
while count < 4:
    print(count)
    count += 1
# 有循环条件 count < 4,所以输出的结果只有 1,2,3

例3:

while True:
    username = input("username>>:")
    password = input("password>>:")
    if username == 'zhang' and password == '123':
        print("成功")
        break
    else:
        print("失败")
# 输入正确用户和密码 break强制结束

流程图

 验证一个break只能结束它所在那一层的循环体代码

while True:
    print('我是外层的循环')
    while True:
        print('我是内层的循环')
        break
    break

2.3 whlie+continue

continue 代表着结束本次循环,直接进入下一次循环 

例4;
count = 1
while count < 11:
    if count == 7:
        # 让count自增1
        count += 1
        # 跳过本次循环 直接开始下一次循环
        continue
    print(count)
    count += 1

流程图

 

2.4 whlie+else

在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句

count = 1
while count < 5:
    print(count)
    count += 1
else:
    print('循环体按照提前定义好的条件正常结束 则会执行')

count = 1
while count < 5:
    print(count)
    if count == 3:
        break
    count += 1
else:
    print('循环体按照提前定义好的条件正常结束 则会执行')

2.5 死循环与全局标志位

死循环,计算死循环 不允许出现 有问题,有等待时间 允许出现 没有问题

1.死循环
count = 10
while True:
    count *= 10  # 计算死循环 不允许出现 有问题
  
while True:
    name = input('name>>>:')  # 有等待时间 允许出现 没有问题

全局标志位,运用在循环嵌套中,把break省写

while True:
    print(123)
    while True:
        print(321)
        while True:
            print(222)
            break
        break
    break
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.编写一个用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序

# 定义初始次数 1 写循环语句 < 4 只能执行三次 输出写在循环里 if判断 用户密码正确结束 错误 count + 1 在循环
count = 1
while count < 4:
    username = input("username>>:")
    password = input("password>>:")
    if username == "zhang" and password == "123":
        print("登录成功")
        break
    else:
        print("用户名或密码错误")
        count += 1

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

# 1.写登录,成功结束,失败无限尝试
# 2.进入内循环 q 结束
count = True
while count:
    username = input("username>>:")
    password = input("password>>:")
    if username == 'zhang' and password == '123':
        print("登录成功")
        while count:
            order = input("请输入指令:")
            info = "正在执行您的指令:%s"
            print(info % order)
            if order == 'q':
                break
        break
    else:
        print("用户名或密码错误")

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

# 1. 先写最多执行三次
# 2. 判断是否已经执行三次
count = 1
while count < 4:
    age = input("请输入猜测年龄:")
    if age == '18':
        print("恭喜您答正确")
        break
    else:
        print("回答错误,请再次尝试")
        count += 1
        if count > 3:
            print("是否继续尝试")
            again = input("填y继续答题,填q结束答题:")
            if again == 'y':
                count = 1
            else:
                break

 

posted @ 2022-06-22 20:54  |相得益张|  阅读(31)  评论(0编辑  收藏  举报