流程结构之循环结构

昨日作业解题思路概念图

  • 作业一
    1.女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好
    代码解析:
age = 28
    height = 175
    weight = 99
    is_beautiful = True
    if 18 <= age < 22 and height > 170 and weight < 100 and is_beautiful:
        print('加微信吧')
    else:
        print('不好意思 认错人了!')

思想概念图
在这里插入图片描述

  • 作业二
    2.根据用户输入内容打印其权限
    ‘’’
    jason --> 超级管理员
    tom --> 普通管理员
    jack,rain --> 业务主管
    其他 --> 普通用户
    ‘’’
    代码解析
# 1.获取用户名
    name = input('name>>>:')
    # 2.判断用户身份
    if name == 'jason':
        print('超级管理员')
    elif name == 'tom':
        print('普通管理员')
    elif name == 'jack' or name == 'rain':  # 正确写法
        print('业务主管')
    else:
        print('普通用户')

思路控制图
在这里插入图片描述

  • 作业三
    3.编写用户登录程序
    要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
    eg:black_user_list = [‘jason’,‘kevin’,‘tony’]
    如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
    eg: oscar 123
    代码解析
# 1.先定义出黑名单用户
    black_user_list = ['jason', 'kevin', 'tony']
    # 2.获取用户的用户名
    username = input('username>>>:')
    # 3.判断用户名是否在黑名单中
    if username not in black_user_list:
        # 4.让用户输入密码
        password = input('password>>>:')
        # 5.判断用户名和密码是否正确
        if username == 'oscar' and password == '123':
            print('欢迎oscar大驾光临')
        else:
            print('用户名或密码错误')
    else:
        print('你永久拉黑了 滚蛋吧')

思想控制图
在这里插入图片描述

今日内容

运算符补充

  • 补充
  • and
    eg:
    print(1 == 2 and 3)# Flase
    因为运算符左边不成立为Flase,所以后面都不用看了,直接为Flase
    eg:
    print(1 == 1 and 3)# 3
    这里就会想为什么输出的不是True呢?
    因为运算符and的左边是成立的,为True;然后还需要看右边,但是右边为一个具体的数据值,当运算符中输出条件为具体的数据值的时候,这个时候打印出来的就是这个数据值
  • or
    eg:
    print(1 == 1 or 3)# True
    因为根据or的运算法,这里当左边已经成立的时候,后面就已经不用看了,因为左边不是一个具体的数据值,而是带有比较的条件,所有直接输出True
    eg:
    print(1 or 10 > 20)# 1
    这里因为左边数据值1对应的布尔值为True,所以可以直接输出,但是1是一个具体的数据值,所以直接打印1.
  • not
    这个就比较简单
    结果就是对应的布尔值。

流程控制之循环结构

循环结构之while循环

格式:
while 条件:
	满足条件执行的子代码
  • 思想流程

可以通过以下步骤进行理解:
1.当我们输入一个信息的时候,在输出的时候给几个条件判断。
2.当满足条件一的时候,代码进行,但是如果不满足第二条件的时候,会打回重新整。
3如果一直不满足,就会一直打回重整。
4.知道满足要求了,才算结束。

  • 举例说明
data = ['jason', 'tom', 'kevin']
name = input("name>>>:")
while name in data:
    pwd = input("pwd>>>:")
    if pwd == "123" and name == 'jason':
        print("登录成功!")
代码解释:
当我们输入列表data以外的的用户名的时候,会直接结束;当我们输入列表里的用户名的时候,会提示我们输入正确的密码
如果我们密码输入错误,就会一直循环输入密码的过程,只有当我们输入正确的密码之后才会进行下一步,输出"登录成功!"

当我们要设定循环次数的时候,我们可以这样:

data = 1
while data < 4:
	print('123')
	data += 1
代码解释:
当我们设定初始值为1的时候,开始往下进行,1满足条件data < 4,然后继续往下进行,输出123,然后data
值加12;没有结束的命令,然后回到while data < 4:这一步,因为满足条件,继续执行,这样重复进行。
当data值加到4的时候,回到while data < 4:时,已经不满足条件了,所以就不会进入循环了,直接输出结果。

循环结构之while+break

格式:
while 条件:
	满足条件执行的子代码
	break

当我们想直接结束循环的时候,这个时候我们就可以用到break语句

  • 思想理解

我们想自己结束循环的时候,使用break

  • 举例说明
data = ['jason', 'tom', 'kevin']
name = input("name>>>:")
while name in data:
    pwd = input("pwd>>>:")
    if pwd == "123" and name == 'jason':
        print("登录成功!")
        break
代码解释:
根据代码测试,如果这里不加break,就会一直提示你输入密码,就算是你密码输入正确,因为这里进入的条件为
name,但是你输入的名字是已经满足条件才会进入循环的,当返回密码的时候与条件无关,所以会无限循环,但
是,我们加了一个break的时候,就会强制性的结束循环。

**注意

一个break只能强制结束同级的while循环

循环结构之while+continue

格式:
while 条件:
	满足条件执行的子代码
	continue
  • 思想理解

continue命令就是跳过本次循环,直接进行下次循环

  • 举例说明

当我们想在数字1~10中我不想得到数字7,这个时候我们就可以用到continue

data = 1
while data < 11:
		if data == 7:
		data += 1
		continue
	print(data)
	data += 1
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/day05/01 循环结构.py"
1
2
3
4
5
6
8
9
10

Process finished with exit code 0
代码解释:
当初始值为1,然后进行循环,前6都可以正常输出,但是当data值为7的时候,然后自增1,变成8;跳过此次循环,不输出结果,然后data值为8继续循环。

注意

continue也只能影响同级情况下的循环

循环结构之while+else

格式:
while 条件:
	满足条件执行的子代码
else:
	不满足条件执行的子代码
  • 思想理解

当我们输入一个条件信息的时候,如果这个条件满足while循环的条件,则进入循环;但是如果不满足,则输出else下的子代码。

  • 举例说明
data = input('请输入大小:')
data = int(data)
while data < 11: 
	if data == 7break
	print(data)
	data += 1
else:
	print('数据太大')	
代码解释:
当我们输入值小于11的时候,就会进入循环去执行结果,但是当我们输入的数值大于11的时候,就会输出else下的子代码结果。

死循环与全局标志位

  • 死循环

这里希望大家都不要去写死循环,因为这个死循环会让CPU一直工作,如果多几个死循环,你的CPU很有可能会受不了,会”累死的“。

eg:
data = 1
while data < 11:
	print(data)
  • 全局标志位(可以不用)
    理解:可以理解为用一个单词来定义条件。最后将定义词规定为Flase,然后循环就会结束。

今日作业

  • 作业一

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.编写一个用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序

代码:

a = 1
while a < 4:
    name = input("请输入你的名字:")
    pwd = input("请输入你的密码:")
    if name == "李智强" and pwd == "123":
        print("登录成功")
        break
    else:
        print("登录失败!")
    a += 1
else:
    print("今日输入次数你已经用完了,请明天再试!")

流程图:
在这里插入图片描述

  • 作业三

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

代码:

while True:
    name = input("请输入你的名字:")
    pwd = input("请输入你的密码:")
    if name == "李智强" and pwd == "123":
        print("登录成功")
        while True:
        	name = input("请输入你的指令:")
            print("正在执行您的指令: %s" % name)
        	if name == "q":
            	print("你输入的指令为退出")
            	break
        break
    else:
        print("登录失败!")

流程图:
在这里插入图片描述

  • 作业四

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

代码:

age = 18
a = 0
while a < 3:
    i = input('请输入你的猜想:')
    if i < '18':
        print('猜小啦!')
    elif i > '18':
        print('猜大啦!')
    else:
        print('猜对啦!')
    a += 1
    if a == 3:
        choice = input('是否再来三次(y/q):')
        if choice == 'y':
            print('再来三次')
            a = 0
        else:
            print('拜拜了你嘞!')
            break

流程图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值