-
逻辑运算符知识补充
-
循环结构
-
while 循环
女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好。
根据用户输入内容打印其权限
‘’’
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
‘’’
编写用户登录程序
要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = [‘jason’,‘kevin’,‘tony’]
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123
连接的条件如果没有一个具体的值,则自动转换成布尔值!!!
举个栗子:
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 0or
根据逻辑运算符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 0not
循环结构之while循环 while条件not的结果一定是个布尔值
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 0while + 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



