前面我们讲while循环的时候while循环可以和break、else、continue连用。同样for循环也可以,它也有break、else、continue,并且用法和while循环是一模一样。
break是终止循环、else后面的代码hi在循环正常结束并且不被打断情况下执行、continue是立即终止本次循环,进入下一次循环。
我继续拿前面那个模拟QQ登入案例来讲。
username = '110119'
password = '123456'
num = 0
while num < 3:
input_username = input('请输入你的账号:')
input_password = input('请输入你的密码:')
if input_username == username and input_password== password:
print("登入成功")
while True:
action = input('请输入你的操作')
if action == 'xxx':
break
print(f'正在看{action}')
break
else:
print('用户名或密码错误,请注意格式大小写')
num += 1
else:
print('账号密码输错三次,已被锁定')
这段代码,本身是循环输错三次账号密码,就退出循环,我现在直接把while循环这段代码删掉,换成for i in range(3)。这也是循环三次就结束,然后其他都不用改。
username = '110119'
password = '123456'
num = 0
for i in range(3):
input_username = input('请输入你的账号:')
input_password = input('请输入你的密码:')
if input_username == username and input_password== password:
print("登入成功")
while True:
action = input('请输入你的操作')
if action == 'q':
break
print(f'正在看{action}')
break
else:
print('用户名或密码错误,请注意格式大小写')
num += 1
else:
print('账号密码输错三次,已被锁定')
break、else、continue这三个效果都是一样的。直接运行,输错三次账号密码,就退出了循环,然后账号密码被锁定。
然后再运行一次,输入正确的账号密码,然后输入‘q’,退出代码,最后结束。
我们现在来看,for循环的最后一个知识点,for循环嵌套。
首先写一个for循环,range(1,10),那就是1-9循环9次对吧。然后在子代码块中打印外层循环。
or i in range(1,10):
print('外层循环---->',i)
这样打印就相当于把这个字符串,和这个变量i打印在同一行,打印出来中间就会有一个空格隔开,你可以把print中的逗号当做一个是一个空格。
然后我再写一个for循环。然后在子代码块中打印层次循环。
for i in range(1,10):
print('外层循环---->',i)
for x in range(1, 10):
print('内层循环-->', x)
前面我们学循环的时候,就应该知道了循环一次,如果中间没有遇到break或continue,会把循环体代码全部执行完毕,然后再进入下一次循环。
我们来分析一下这段代码,首先进入的是外层循环,会先打印外层循环,这时候后i的值为1,接着就会进入内层的这层for循环,直接把内层的循环全部执行完毕,就是接着会打印9次内存循环1-9,这才是外层循环的子代码执行完毕了对吧。
然后才能进入第二次外层循环,这时候i的值为2,然后就会进入内层的这层for循环,直接把内层的循环全部执行完毕,就是接着会打印9次内存循环1-9,第二次外层循环执行完毕。
第三次外层循环,i的值为3,进入内存循环——打印9次1-9;
——
——
第九次外层玄幻,i的值为9,进入内存循环——打印9次1-9。
外层循环循环一次,内层循环就会完整的循环9次,现在我们运行看看是不是我们分析的效果一样。
根据循行的结果,分析的没有错误。
这里要注意,for循环嵌套推出的方法只有break,它不像while循环那样还可以改条件,并且break只能退出本层循环。
未经允许不得转载:445IT之家 » Python for循环嵌套