20.循环中的else

李光朱课程 2024-04-10 00:29:15
引入

看如下代码,想一想:怎样实现 "密码不正确的相应提示"

i = 3while i > 0: password = input("请输入密码:(还剩%d次机会)" % i) if password == "123456": print("密码输入正确") break i -= 1

想要实现在 "密码不正确" 时提示相应的信息,普通的做法是:

login_flag = False # 定义一个变量,用来存储是否登录成功,True表示成功 False表示不成功i = 3while i > 0: password = input("请输入密码:(还剩%d次机会)" % i) if password == "123456": login_flag = True # 如果登录成功,那么这里就改为True break i -= 1# 当上述的while循环结束后,判断login_flag的值,来输出对应的信息if login_flag == True: # 简单的写法是if login_flag: print("密码输入正确")else: print("密码输入不正确,今日3次机会已用完,请明天再试...")

上述的代码整体逻辑是:

循环中获取密码判断是否正确,通过一个变量来标记正确与否当循环结束后,在单独判断标记,然后输出对应的信息

问题:有么有简单的方式呢?

答:else

while...else... 的使用方式

格式:

while 条件: # 条件满足时执行的代码...else: # 如果上述的while循环没有调用break,就执行的代码...

说明:

只要while循环体中没有执行break,那么当while循环体中所有的代码执行完后,else中的代码也会执行如果while循环中有break那么表示整个while结束,else中的代码也不会被执行

示例:

有 break 时:i = 1while i <= 3: print("这是一段测试信息...") if i == 1: print("调用了break") break i += 1else: print("我是else中的代码")运行结果:这是一段测试信息...调用了break没有 break 时i = 1while i <= 3: print("这是一段测试信息...") i += 1else: print("我是else中的代码")运行结果:这是一段测试信息...这是一段测试信息...这是一段测试信息...我是else中的代码代码案例i = 3while i > 0: password = input("请输入密码:(还剩%d次机会)" % i) if password == "123456": print("密码输入正确") break i -= 1else: print("密码输入3次全部错误,请明日再试")for...else... 的使用方式

格式:

for 变量 in 可迭代对对象: # 正常执行的代码else: # for未使用break时执行的代码

示例:

未使用 breakfor i in range(5): print("i=%d" % i)else: print("我是else中的代码...")运行结果:i=0i=1i=2i=3i=4我是else中的代码....使用 breakfor i in range(5): print("i=%d" % i) if i == 1: print("我是break哦...") breakelse: print("我是else中的代码...")运行结果:i=0i=1我是break哦...代码案例for i in range(3, 0, -1): password = input("请输入密码:(还剩%d次机会)" % i) if password == "123456": print("密码输入正确") breakelse: print("密码输入3次全部错误,请明日再试")验证 continue

我们知道continue的作用是结束本次循环,那么既然break在for...else...和while...else...中都起作用,那么continue呢?

接下来我们就验证一下。

验证一:

ue print("一起学Python啊,别忘了来 www.tulingxueyuan.com 网站哈")else: print("我是else中的代码...")

运行结果:

来了老弟...来了老弟...来了老弟...我是else中的代码...

验证二:

for i in range(3): print("来了老弟...") continue print("一起学Python啊,别忘了来 www.tulingxueyuan.com 网站哈")else: print("我是else中的代码...")

运行结果:

来了老弟...来了老弟...来了老弟...我是else中的代码...

结论:

在while...else...与for...else...中,break会让else中的代码不执行,而continue没有这个功能

0 阅读:0

李光朱课程

简介:感谢大家的关注