逻辑运算符和while循环
逻辑运算符和while循环
逻辑运算符
and 一假则假,全真则真
or 一真全真,全假则假
not 与原本意思相反
and
# 当使用and逻辑运算符时,左边两边都是需要计算机计算(算术运算)时,输出的结果对应的是布尔值
print(1 == 2 and 10 > 7) # False
print(5 < 2 and 1 != 3) # False
print(False and 1 == 1) # False
print(True and 3 >= 2) # True
# 当使用and逻辑运算符时,左右边两边有算术运算和数值时,输出的结果得判断
# 若两边判断的结果都成立若数值在后则输出相应的数值,若数值在前输入所对应运算的布尔值
# 若两边判断的结果是成立的但是数值是0则输出的结果是0,不为0则输出对应运算的布尔值
print(1 != 2 and 5) # 5
print(5 and 1 == 1) # True
print(3 > 1 and 0) # 0
print(0 and 1 == 1) # 0
# 若两边只要有一个结果是不成立时输出的布尔值是False
print(5 and 1 == 5) # False
print(1 == 2 and 5) # False
print(3 < 1 and 0) # False
or
# 从左往右判断,左右两边存在算术运算和数值时
# 若首先判断的是算术运算时若条件成立则输出True,若条件不成立则输出后面的数值
# 若首先判断的是数值不为0的情况下则打印输出的是数值,若首先判断的是数值为0的情况下看后面判断的条件是否成立,若成立打印输出True否则打印输出False
print(1 != 2 or 0) # True
print(5 or 1 == 1) # 5
print(5 or 1 == 2) # 5
print(3 > 1 or 0) # True
print(0 or 1 == 1) # True
print(0 or 1 == 2) # False
print(1 == 2 or 6) # 6
print(False or 7) # 7
print(True or 7) # True
# 左边两边都是数值的情况
# and:输出后面的数据值
print(111 and 22) # 22
print(33 and 222) # 222
# or:若第一个数据值不为0则打印输出该数据值,若第一个数据值为0则打印输出的是后面的不为0的数据值
print(111 or 22) # 111
print(0 or 22) # 33
while循环
while 条件:
条件成立后循环执行的子代码
1.while后面的条件一旦成立,子代码便可执行
2.子代码执行后再回到while的条件处进行判断,若条件成立再次执行子代码回到while的条件处判断
3.直到while后的条件不满足时,结束
# 定义用户的用户名和密码,输入用户名和密码实现登录,若登录成功打印登录成功,若登录失败打印用户名和密码错误,且登录可以不断的尝试
name = '橘子' # 定于用户的用户名
pwd = '313' # 定义用户的密码
while True: # 条件一直为True表明条件一直成立
user_name = input('user_name: ') # 输入用户名
user_pwd = input('user_pwd:') # 输入用户名密码
if name == user_name and pwd == user_pwd: # 判断用户的用户名和密码
print('登录成功!') # 条件成功打印登录成功
else:
print('登录失败!') # 条件失败打印登录失败


while + break
结束循环体,写完结束条件添加关键字强制结束while循环(当前循环体)。先判断while后的条件,然后再循环体中添加关键字结束循环。
name = '橘子' # 定于用户的用户名
pwd = '313' # 定义用户的密码
while True: # 先判断while后面的条件是否成立
user_name = input('user_name: ') # 输入用户名
user_pwd = input('user_pwd:') # 输入用户名密码
if name == user_name and pwd == user_pwd: # 判断用户名和密码是否正确
print('登录成功')
break # 强制结束,直接结束break所在的循环体 (结束本层循环)
else:
print('用户名或密码错误')

while + continue
结束本次循环,开始下一次循环,值结束所在当前循环体。
# 循环打印1到10(按规矩办事) 但是到了7就跳过
count = 1 # 定义count
while count < 11: # 先判断while后面的条件是否成立
if count == 7: # 判断if条件是否成立
count += 1 # 让count自增1
continue # 跳过本次循环 直接开始下一次循环
print(count)
count += 1

while + else
与while循环用法几乎一致,增加了当while条件不成立时执行的条件。
count = 1
while count < 11:
print(count)
if count == 7:
break # 结束while循环
count += 1
else: # while循环结束执行
print('循环体按照提前定义好的条件正常结束 则会执行')

死循环与全局标志位
1.死循环
count = 2
while True:
count += 10 # 计算一直循环,不允许出现,有问题
print(count)
while True:
name = input('name>>>:') # 有等待时间,允许出现,没有问题
print(name)
2.全局标志位(可不用)
flag = True # 定义全局标志位为true
while flag: # 当条件成立执行
print(111)
while flag: # 当条件成立执行
print(222)
flag = False # 相当于条件不成立,结束当前本层while循环
作业
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.编写一个用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序
count = 1 # 定义开始次数为1
user_name = 'orange' # 定义用户名
user_pwd = '123' # 定义用户密码
while count < 4: # 用户输入密码的次数只有3次
count += 1 # 条件成立次数加1
name = input('Please your name: ') # 输入用户名
pwd = input('Please your pwd: ') # 输入密码
if name == user_name and pwd == user_pwd: # 判断用户名和密码是否正确
print('登录成功!') # 正确打印登录成功
break # 登录成功后强制结束循环
else:
print('用户名或密码错误!') # 如果用户名或密码错误打印提示

3.编写一个用户登录程序
用户如果登录失败 可以无限制尝试
用户如果登录成功 则进入内层循环 获取用户输入的指令 并打印该指令
eg: 用户输入cmd指令 则程序打印'正在执行您的指令:cmd'
给用户提供一个退出命令 用户一旦输入则退出这个程序
eg: 用户输入q指令 则程序先打印该指令再结束
user_name = 'orange' # 定义用户名
user_pwd = '123' # 定义用户密码
q = ['q']
while True: # 可一直循环
name = input('Please your name: ') # 输入用户名
pwd = input('Please your pwd: ') # 输入密码
if name == user_name and pwd == user_pwd: # 判断用户名和密码是否正确
while True:
input1 = input('请输入指令: ')
if input1 not in q:
print('正在执行您的指令:' + input1)
elif input1 in q:
print(input1)
break # 退出当前输入指令的循环
break # 退出当前输入用户名的循环

4.编写猜年龄的游戏(拔高练习 尝试编写)
用户有三次猜测的机会 如果用完则提示用户是否继续尝试
用户输入y则继续给三次机会 如果用户输入q则直接结束程序
age = '22'
count = 1
Y = 'y'
Q = 'q'
while count < 4:
info = input('输入你认为的年龄:')
count += 1
if info == age:
print('猜对了!')
break
else:
print('猜错了!')
if count == 4:
input1 = input('是否继续尝试?(y/q)')
if input1 == Y:
count = 1
elif input1 == Q:
break

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)