循环结构与流程控制

image

1.逻辑运算符知识补充

先写带代码思路,再写代码

#and
print(1 == 2 and 3)  # Flase 
print(1 == 2)  # Flase
#连接的条件 如果不是一个具体的值 则需要自动转换成布尔值
print(10 > 3 and 100)  # 100
#由于and前面连接的运算得出的布尔值为True,所以and连接的条件的最终结果取决于后面的,如果后面的值是明确的数据值则返回的是该数据值,(数据值对应的布尔值必须是True)
and 先看前面成不成立,成立在看后面的数据运算结果成不成立,成立显示为True
如果不成立Flase,如果前后都成立后面是具体的数据值则结果就是该数据值
#or
print(1 == 1 or 111)  # True
print(1 or 10 > 20)  # 1
print(10 or 100)  # 10
如果是全是数据值,那么结果肯定是数据值。
如果有数据值又有运算则需要分情况判断
and前面成立需要看后面,如果是具体数据值则结果是该数据值,如果是运算结果是运算结果相应布尔值,前面不成立直接返回布尔值False,
or 前面如果成立返回的就是该数据值或者对应的布尔值,如果不成立看后面后面有成立的条件如果是数据值结果就是该数据值如果是运算就时该结果的布尔值
not的结果肯定是布尔值

not 得出的结果一定是布尔值
优先级 ()> not > and >or
print(not False)  # 布尔值

循环结构之 whlie 循环

2.while 条件:

条件成立之后循环执行的子代码

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

while True:
    name = input('name>>>:')
    pwd = input('pwd>>>:')
    if name == 'jason' and pwd == '123':
        print('登录成功')
    else:
        print('用户名或密码错误')

定义一个计数器

count = 1
while count <3:
	count +=1  #。计数器可以结束循环体可以循环两次

while

结束循环体的方式

  • 1.自己写结束条件,利用while后面的条件判断结束循环
while True:  # 条件成立进入循环
	print()
while False:  # 条件不成立不进入循环
	print()



* 2.在循环体代码写关键字强制结束循环
```python
count=1  # 计数器
while count<4:  # 循环体判断条件
    name = input('name>>>:')  # 进入获取用户名和密码
    pwd = input('pwd>>>:')
    if name == 'jason' and pwd == '123':  # 判断用户名和密码是正确
        print('登录成功')# 登陆成功
        break  # 强制结束
    else:
        print('用户名或密码错误')
		count +=1  # 每次输错进入此代码自增一次计数器三次过后循环条件不成立则退出循环

在循环体代码写关键字强制结束循环

count = 1
while count < 11:
    if count == 7:
        # 让count自增1
        count += 1  # 这个自增是在进入分支时结束本层后使用如果不进入分支则使用下面那个自增
        # 跳过本次循环 直接开始下一次循环
        continue
    print(count)
    count += 1

while+else

count = 1
while count < 8:
    print(count)
    if count == 5:
        count += 1
        continue  # 此行换为break 强制结束下方代码不再运行
    count += 1
else:
    print('输入密码')  # 代码正常结束则会运行强制结束则不会运行!

image
image

死循环 与全局标志位

死循环
count = 10
while True:
    count += 10
    print(count)  # 无限打印这玩意死循环不允许出现
	
	
while True:
	name =input('请输入内容>>>:')  # 有功能等待输入可以使用
	
	
全局标志位
flag = True
while flag:
    print(123)
    while flag:
        print(321)
        while flag:
            print(222)
            flag = False
			
			

image

image
1.准确说出下列判断的结果(不要执行代码)
v1 = 1 or 3
v2 = 1 and 3
v3 = 0 and 2 and 1
v4 = 0 and 2 or 1 # 0 or 1
v5 = 0 and 2 or 1 or 4 # 0 or 1 or 4 取决于1
v6 = 0 or False and 1 # 0 or False
1
3
0
1
1
False

  • 2.编写一个用户登录程序
    用户如果登录失败 则只能尝试三次
    用户如果登录成功 则直接结束程序
    先编写用户登陆系统,染判断用户名和密码正确的登陆成功,错误的登陆失败,先尝试无穷次,再想怎么变成三次
count = 1  # 计数器
while count < 4:
	name = input('输入用户名>>>:')  #制作登陆功能
	pswd = input('输入密码>>>:')
	if name == 'joke' and pswd == '123':  # 判断
		print('登陆成功')  # 成功
		break
	else:
	print('登陆失败')  # 失败
	count +=1
	
	
	
count = 1
while True:
    if count == 4:
        break
    name = input(' 输入用户名>>>:')
    pswd = input('输入密码>>>:')
    if name == 'joa' and pswd == '123':
        print('登陆成功')
        break
    else:
        print('密码错误')
        count += 1

三次登陆系统流程图

image
image

image

3.编写一个用户登录程序

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

while True:
    name = input(' 输入用户名>>>:')
    pswd = input('输入密码>>>:')
    if name == 'joa' and pswd == '123':
        while True:
            cmd = input('请输入指令:')
            if cmd == 'y':
                print('下次光临:')
                break  # 此处输入结束指令后跳到循环体同等级代码运行
            print('正在执行指令%s' %cmd)
        print('已退出')
        break  # 此代码可结束外层循环循环,小循环结束后运行
    else:
        print('用户名错误')


先写登陆程序,登陆成功后进入循环,输入指令无线输出,用判断定义一个指令可退出循环程序,用户如果输入错误直接结束所有需要加入循环输入,用户第一次错误第二次正确进入小循环所以所有代码需要循环
kay = True
while kay:
    name = input(' 输入用户名>>>:')
    pswd = input('输入密码>>>:')
    if name == 'joa' and pswd == '123':
        while kay:
            cmd = input('请输入指令:')
            if cmd == 'y':
                print('下次光临:')
                kay = False
                  # 此处输入结束指令后跳出循环体需在循环体同等级加一个结束代码一个brerk只能结束一个代码
            print('正在执行指令%s' %cmd)
    else:
        print('用户名错误')
# 使用全局标志位可优化




登陆并输入内容系统流程图

image

4.编写猜年龄的游戏(拔高练习 尝试编写)

用户有三次猜测的机会 如果用完则提示用户是否继续尝试
用户输入y则继续给三次机会 如果用户输入q则直接结束程序

age1 = 18
count = 1
l = True
while l:
    if count == 4:
        k =input('你已经猜错三次啦是否继续>>>:')
        if k == 'y':
            count = 1
        else:
            break
    age = input('输入年龄:')
    age =int(age)
    if age > age1:
        count += 1
        print('猜大啦')
    elif age < age1:
        print('猜小啦')
        count += 1
    else:
        print('真厉害猜对啦')
        l = False

猜年龄小游戏流程图

image

image

posted @ 2022-06-24 00:35  懒羊羊A  阅读(33)  评论(0)    收藏  举报