在很多情况下,我们往往需要循环输入多次,比如,密码最多只能输错3次等。这时候,我们需要使用循环结构。本小节,将学习循环。
一、while循环
while循环的一般形式如下:
while 判断条件:
循环语句块
当判断条件为真,便执行循环语句块。比如说,我们需要写一个判断账号密码的程序。账号为:admin,密码为:123456。
count = 0
while count < 3:
username = input("请输入用户名:")
passwd = input("请输入密码:")
if username == "admin" and passwd == "123456":
print("输入正确!")
else:
print("输入有误,请再次输入!")
count += 1
if count == 3:
print("您已输错三次!")
首先,定义一个用于计数的变量并初始化为0;当计数值小于3,则继续输入,直到count值变为3,还没有正确输入,便提示输入错误。我们分析这个程序发现,如果每次都输入正确,count值不会变化,就会永远循环。此时,我们需要加入break,它的作用就是,跳出这个循环。修改后的代码如下:
count = 0
while count < 3:
username = input("请输入用户名:")
passwd = input("请输入密码:")
if username == "admin" and passwd == "123456":
print("输入正确!")
break
else:
print("输入有误,请再次输入!")
count += 1
if count == 3:
print("您已输错三次!")
二、for循环
for循环可以遍历任何序列,一般形式如下:
for 变量 in 序列: 语句块 else: 语句块
else子句,在for遍历完所有内容后执行,单如果循环被中断则不执行。
用for来改写前面的用户、密码判别程序。
for i in range(3):
username = input("请输入用户名:")
passwd = input("请输入密码:")
if username == "admin" and passwd == "123456":
print("输入正确!")
break
else:
print("输入错误,已输入三次!")
range()可以产生1个数列,比如上例中,便产生了0,1,2这样的数列。
range()函数可以是一个参数,也可以是2个参数,还可以是3个函数,直接看实例。
数列为从0开始,到传入参数-1。
数列从第一个参数开始,到第二参数-1。
数列从第一个参数开始,以第三个参数为步长,直到第二个参数,但不包含第二个参数。