while循环
while基本格式
a = 0 #先定义变量a,并赋值
while a < 5: #设定一个放行条件:a要小于5,才能办事
a = a + 1 # 满足条件时,就办事:将a+1
print(a) # 继续办事:将a+1的结果打印出来
注意:while后面必须有冒号,紧接着必须缩进
示例格式
password = '' # 变量password用来保存输入的密码
while password !='123': #123也必须是字符串,记得加引号,否则报错 !=是不等于的意思
password = input('请尝试输入密码:') #如果输入的不是123,那么就输出“请尝试输入密码” 这一行需要缩进
print('欢迎回家') #直到终端输入的是123,才会出现“欢迎回家” print必须和while对齐
print缩进与否
# 缩进
a = 0
while a < 5:
a = a + 1
print(a) 打印结果:12345
# 不缩进
a = 0
while a < 5:
a = a + 1
print(a) 打印结果:5
有缩进的时候,print(a)
也是循环中的“办事流程”,会将数字逐一打印。没有缩进的时候,循环中的“办事流程”就只有做加法,print(a)
也就只会打印循环结束时的最后一个数字。
1到100分别乘以5
while循环
i =0
while i<101:
print(i*5)
i=i+1
for循环
for i in range(1,101):
print(i*5)
区别
for循环和while循环最大的区别在于【循环的工作量是否确定】,for循环就像空房间依次办理业务,直到把【所有工作做完】才下班。但while循环就像哨卡放行,【满足条件就一直工作】,直到不满足条件就关闭哨卡。
所以说,当我们【工作量确定】的时候,我们就可以让for循环来完成重复性工作。反之,要【工作量不确定时】可以让while循环来工作:
# 适合用for...in...循环
for i in '神雕侠侣':
print(i)
# 适合用while循环
password = ''
while password != '816':
password = input('请尝试输入密码:')
要把字符串'神雕侠侣'
拆成一个个字符打印出来,这件事【工作量确定】,适合用for循环
而对于“输入密码,判断输入的密码是否正确”这件事,我们并不知道要判断几遍才能得到正确密码,所以【工作量不确定】,适合用while循环
有一种情况for循环和while循环都可以解决问题,那就是【把一件事情做N遍】:for循环的代码相对更简洁一些。
#用for循环把诗句打印3遍
for i in range(1,4) :
print('明日复明日,明日何其多。')
#用while循环把诗句打印3遍
j = 1
while j<4 :
print ('明日何其多,明日何其多。')
j =j+1
练习
打印出1到7之间的数字,不包含4
for循环:
for i in range(1,8):
if i !=4:
print(i)
while循环:
i =0
while i<7:
i=i+1
if i !=4:
print(i)