栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

小白学python系列————【Day09】while循环结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小白学python系列————【Day09】while循环结构

今日内容概要
  • 逻辑运算符知识补充

  • 循环结构

  • while 循环

昨日布置作业流程图补充 作业一:

​ 女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好。

作业二:

根据用户输入内容打印其权限
‘’’
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
‘’’

作业三:

编写用户登录程序
要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = [‘jason’,‘kevin’,‘tony’]
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123

逻辑运算符知识补充 and

连接的条件如果没有一个具体的值,则自动转换成布尔值!!!
举个栗子:
print(1==2 and 3)
1 == 2 条件不成立,利用and逻辑运算符特性连接的两个条件都成立结果才成立可知print(1 == 2 and 3)不成立,输出结果为False
敲重点
print(5 > 2 and 100)
and前面的运算得出的布尔值为Ture,根据其特性依次看and后面的,若后面的为运算,且得出的布尔值也为True,则最后结果成立;若后面的为一个具体数据值,那么直接返回其数据值(注意数据值对应的布尔值也为True)
所以print(5 > 2 and 100)成立,输出值为100

  • 代码展示:
print(1 and 3)

print(0 and 2 and 1)


D:Python36python36.exe "E:/pythonProject/Day05/03 作业.py"
3
0

Process finished with exit code 0
or

根据逻辑运算符or的特性,or前后只要一个条件成立,则总体成立,结果输出为True
其次如果遇到数据值,也直接当做布尔值处理!!!
举个栗子
print(1 == 1 or 111)
or前面运算显然成立,即结果成立,输出值为True
print(10 > 20 or 1)
or前面运算显然不成立,目光转移到or后面,为数据值直接看做布尔值为True,所以直接输出数据值本身

  • 代码展示:
print(1 or 3)
print(0 or 2 or 1 or 4)



D:Python36python36.exe "E:/pythonProject/Day05/03 作业.py"
1
2

Process finished with exit code 0
not

not的结果一定是个布尔值

循环结构之while循环 while条件

1.while本质介绍
第一步先判断while后面条件是否成立,若成立则执行子代码
第二步崽子代码运行完毕之后,再次回到while后面条件判断处,继续判断条件是否成立
第三步依次往复知道条件不成立为止

2.while样式举例
while 条件:
条件成立之后循环执行的子代码

3.代码展示

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



D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
name>>>:jason
pwd>>>:123
登录成功
name>>>:ken
pwd>>>:321
用户名或密码错误
name>>>:

此外while循环最经典的一个例子-------定义一个计数器
要求从第一次开始打印“123”,while判断条件为打印次数< 4

num = 1
while num < 4:
	print(123)
	num += 1


D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
123
123
123

Process finished with exit code 0
while + break

1.定义:结束循环体的方式之一
break为强制结束循环的关键字,除此之外结束循环的方式只有循环本身自己结束条件

2.敲重点
一个break只能结束他所在层级的那层循环

while True:
    print('11')

    while True:
        print('22')
        break
    break


D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
11
22

Process finished with exit code 0

3.代码展示:

"""while + break用法"""
while True:
    name = input('name>>:')
    pwd = input('pwd>>:')
    if name == 'tony' and pwd == '321':
        print('登录成功')
        break
    else:
        print('用户名或密码错误')



D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
name>>:tony
pwd>>:321
登录成功

Process finished with exit code 0
while + continue

1.结束本次循环,直接开始下一次循环

2.敲重点
与break一样,也只影响它本身所在的那一层循环

while True:
    print(123)
    while True:
        print(321)
        continue
    continue


D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
123
321
321
321
321
321
321
321
321
321
此处省略

3.代码展示:按要求当循环到7是跳过继续循环,循环条件为循环次数小于11

"""while + continue用法"""
count = 1
while count < 11:
    if count == 7:
        count += 1
        continue   # 结束本次循环,开始下一次循环,只影响所在的那一层循环
    print(count)
    count += 1



D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
1
2
3
4
5
6
8
9
10

Process finished with exit code 0
wgile + else

1.python中的while后面的else的作用是指,当while循环正常执行,中间没有break强制停止的情况下,会执else后面的语句。

2.但是如果while语句中有break,那么就不会执行else后面的内容了。

3.两者比较

当加入break时:

"""while + else"""
# 案例一
count = 1
while count < 11:
    print(count)
    if count == 7:
        break
    count += 1
else:
    print('结束')



D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
1
2
3
4
5
6
7

Process finished with exit code 0

当去掉break时:

count = 1
while count < 11:
    print(count)
    count += 1
else:
    print('结束')



D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
1
2
3
4
5
6
7
8
9
10
结束

Process finished with exit code 0
补充之死循环与全局标志位 死循环

1.什么是死循环?
在编程中,一个无法靠自身的控制终止的循环被称为死循环

2.在Python中while循环的执行条件为:While关键字后的条件语句为True因此当条件为"while True或while 1"时,如果没有特殊处理,那么就会一直执行执行while循环,这种就被称为死循环(不会出现条件为False的情况,无法跳出循环)
因为死循环无法终止,会一直运行下去,所以我们要尽量避免出现死循环
当然,我们也可以使用break或continue关键字来终止某一循环

3.代码展示:

	n = 0
	while True: 
    	if n == 5:
        	break  #使用break来跳出死循环
    	print(n)
    	n += 1
	print("循环结束")
 
	"""
	当循环是一个死循环时,就必须使用break来指明跳出循环的条件,不然程序会一直运行下去
	0
	1
	2
	3
	4
	循环结束
	"""

死循环就是永远无法结束的循环并且一致占用CPU工作

全局标志位

1.定义:用于循环一次性整体全部结束

2.代码展示:

flag = True
while flag:
    print(123)
    while flag:
        print(321)
        while flag:
            print(222)
            flag = False




D:Python36python36.exe "E:/pythonProject/Day05/02 今日代码.py"
123
321
222

Process finished with exit code 0

作业展示 作业一:

准确说出下列判断的结果(不要执行代码)
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 Flase

作业二:

编写一个用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序

# 作业二
num = 1
while num < 4:
    name = input('name>>:')
    pwd = input('pwd>>:')
    if name == 'jason' and pwd == '123':
        print('登录成功·')
        break
    else:
        print('登录失败')
    num += 1

作业三

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

# 作业三
flag = True
while flag:
    name = input('name>>:')
    pwd = input('pwd>>:')
    if name == 'jason' and pwd == '123':
        print('登录成功')
        while flag:
            cmd = input('请输入指令>>:')
            if cmd == 'q':
                print('结束拜拜')
                flag = False
            print('正在执行您的指令:%s' % cmd)

    else:
        print('登录失败')

作业四:

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

# 作业四
count = 1
while True:
    age = input('age>>>:')
    if age == '23':
        print('猜对啦~')
        break
    else:
        print('猜错啦~')
        count += 1
    if count == 4:
        ask = input('您已经尝试了三次 是否继续(y/q):')
        if ask == 'y':
            count = 1
        if ask == 'q':
            break

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号