流程控制之while循环,for循环
# 循环结构
概念:循环结构就是重复执行某段代码块
为何要用循环:人类某些时候需要重复做某件事情,所以程序中必须有相应的机制来控制计算机具备人的这种循环做事的能力
循环结构的使用:while循环语法 和 for 循环
一.流程控制之while循环
while循环称之为条件循环,基本语法如下:
while 条件:
代码1
代码2
代码3
while运行步骤:
1.如果条件为真,那么依次执行:代码1、代码2、代码3......
2.执行完毕后再次判断条件,如果条件为True则再次执行:代码1,代码2,代码3,...如果条件为False,则循环终止
1. while循环的基本使用
用户认证程序, 案例一
username='dandan'
password='222'
count=0
while count<3:
inp_name=input('请输入用户名: ')
inp_pwd=input('请输入密码: ')
if inp_name==username and inp_pwd==password:
print('登入成功')
else:
print('输入用户名或密码错误')
count +=1
# 使用while循环实现3次登录
2.死循环:条件永远为True
while True:
x=input('>>> ')
y=input('>>> ')
x+y
1+1 #如果死循环中没有io,纯计算的死循环消耗cpu
3. 结束while循环的两种方式
方式一:把条件改为false
特点:等到本次循环体代码运行完毕后,下一次循环判断条件时才会生效
方式二:break代表结束本层循环
特点:立即干掉while循环
4. 案例二. while+break的使用
使用了while循环后,代码确实精简多了,但问题是用户输入正确的用户名密码以后无法结束循环,那如何结束掉一个循环呢?这就需要用到break了!
username='dandan'
password='222'
count=0
while count<3:
inp_name=input('请输入用户名: ')
inp_pwd=input('请输入密码: ')
if inp_name==username and inp_pwd==password:
print('登入成功')
break #用于结束本层循环
else:
print('输入用户名或密码错误')
count +=1
案列三:while循环嵌套+break
如果while循环嵌套了很多层,要想退出每一层循环则需要在每一层循环都有一个break
方式一:
tag=True
while tag:
while tag:
while tag:
tag=False
# 想要一次性结束所有while循环, 只需改一个地方
方式二:
while True:
while True:
while True:
while True:
break #每一层只结束本层
break
break
案例四:
tag=True
while tag:
inp_name=input('请输入用户名: ')
inp_pwd=input('请输入密码: ')
if inp_name=='dandan' and inp_pwd== '222':
print('登入成功')
tag = False
else:
print('输入用户名或密码错误')
print('*************')
嵌套多层的while循环案例五:
count=0
while count<3:
inp_user=input('请输入用户名: ')
inp_pwd=input('请输入密码: ')
if inp_user=='dandan' and inp_pwd== '222':
print('登入成功')
while True:
print("""
0.退出
1.取款
2.存款
3.转账
""")
choice=input('请输入命令编号: ')
if choice=='0':
break
if choice == '1':
print('正在取款...')
elif choice =='2':
print('正在存款...')
elif choice == '3':
print('正在转账...')
else:
print('输入指令不存在')
break
else:
print('输入密码或账户有误')
count +=1 # 用户如输错,限登录3次
5 .while循环+continue:
break代表结束本层循环,而continue则用于结束本次循环,直接进入下一次循环
count=0
while count<10:
if count == 6 or count ==8:
count +=1
continue #结束本次,直接进入下一次循环 与cuntinue同一级别的后面千万不要写代码,contine也不应该加在最后一步,最后一步不代表是最后一行
print(count)
count +=1
6. while循环+else
else 的子代码块会在while循环正常循环死亡时运行,没有被break干掉就叫正常死亡(在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句,所以我们可以用else来验证,循环是否正常结束)
二,流程控制之for循环
1,基本用法
for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁
案例:
names=['egon','jake','tony','lisa']
# i=0
# while i<len(names):
# print(names[i])
# i+=1
for x in(names): # for 取值循环
print(x)
&& 2行搞定
字典案例:
dic={'k1':111,'k2':222,'k3':333}
for x in dic:
print(x,dic[x])
字符串案例:
for x in "hello":
print(x)
列表案例:
for x,y in [['name','egon'],['age',18],['gender','male']]:
print(x,y)
2,for+break结束
结束本层循环
for i in[11,22,33,44]:
if i == 33:
break
print(i) #案例 break
3,for+continue
结束本次循环,直接进入下一次循环
for i in[11,22,33,44]:
if i == 33:
continue
print(i) # 案例 continue
4,for+else
for i in[11,22,33,44]:
if i == 33:
continue
print(i)else:
print('************') #案例 else
5,range()
案例:
for x in range(3):
print(111)
print(222)
print(333)
6,for循环嵌套
外层循环循环一次,内层循环需要完整的循环完毕
for i in range(3):
print('外层循环-->',i)
for j in range(4):
print("内层循环-->",j)
总结for循环与while循环的异同
1.相同处:都是循环,for循环可以干的事,while循环也可以干
2.不同处:
while 循环称之为条件循环,循环次数取决于条件何时变为假
for循环称之为“取值循环”,循环次数取决in后面包含的值得个数
停止for循环只有break一种方案