Python-day7-流程控制之while+for循环
文章目录
流程控制之循环
说明:
continue
:结束本次循环(本层循环)
break
:结束本层循环(本个while
或`for)
exit
:退出整个脚本程序
两种循环场景
场景1
- 需要一直循环做某件事,达到某个条件时停止,使用
while
循环;
场景2
- 需要循做环
N
次,然后停止,使用for
循环;
while
案例-模拟登录
银行登录小案例
要求:输入次数限制三次
输入对:打印“登陆成功”,再输
q
退出程序;输入错:再次输入,三次错误退出程序并打印提示语;
代码
count = 0
while count < 3:
inp_name = input("请输入用户名>>> ")
inp_pwd = input("请输入密码>>> ")
if inp_name == "Peng" and inp_pwd == "123":
print("登陆成功!")
while 1:
cmd = input("请选择功能编号>>> ")
if cmd == "q" or cmd == "Q":
print("感谢使用,再见!")
exit(1)
else:
print("{x}功能正在运行。。。".format(x=cmd))
continue
else:
print("用户名或密码错误,请重试!")
count += 1
print("输入次数已超过三次,请联系客服处理")
测试登陆成功
打印【登陆成功】,并提供功能按钮,支持一直循环;登陆成功后或输入功能并运行完毕后,输入
q/Q
,才会退出程序
# 登录成功直接输入q/Q
MacBook-Pro:python Peng$ python3 login.py
请输入用户名>>> Peng
请输入密码>>> 123
登陆成功!
请选择功能编号>>> Q
感谢使用,再见!
# 运行完相关功能后输入q/Q
MacBook-Pro:python Peng$ python3 login.py
请输入用户名>>> Peng
请输入密码>>> 123
登陆成功!
请选择功能编号>>> a
a功能正在运行。。。
请选择功能编号>>> b
b功能正在运行。。。
请选择功能编号>>> Q
感谢使用,再见!
测试登录失败
输入用户或密码三次以上,强制退出程序,并打印【联系客服处理】的相关提示语
MacBook-Pro:python Peng$ python3 login.py
请输入用户名>>> aaa
请输入密码>>> 123
用户名或密码错误,请重试!
请输入用户名>>> Peng
请输入密码>>> 12
用户名或密码错误,请重试!
请输入用户名>>> aaa
请输入密码>>> 12
用户名或密码错误,请重试!
输入次数已超过三次,请联系客服处理
MacBook-Pro:python Peng$
for
理论上
for
循环能做的事while
也能做,只是某些场景用for
会更加简洁,主要用于遍历取值语法:
for 变量名 in {可迭代对象}
,如for i in {1..100}
案例-循环取值
for x in {'name1','name2','name3','name4','name5'}
print(x)
代码执行
MacBook-Pro:python Peng$ python3 for_print.py
name3
name2
name4
name5
name1
案例-字符串循环取值
打印变量名
dic = {'k1':111,'k2':222,'k3':333}
for k in dic:
print(k)
代码执行
MacBook-Pro:python Peng$ python3 for_dic.py
k1
k2
k3
打印值
dic = {'k1':111,'k2':222,'k3':333}
for k in dic:
print(dic[k])
代码执行
MacBook-Pro:python Peng$ python3 for_dic.py
111
222
333
拼接打印
dic = {'k1':111,'k2':222,'k3':333}
for k in dic:
print(k + ":",dic[k])
代码执行
MacBook-Pro:python Peng$ python3 for_dic.py
k1: 111
k2: 222
k3: 333
单/多个变量名
单个:变量值会自动以空格区分
多个:每个变量名自动为组
msg1 = "helloworld"
msg2 = "hello"
msg3 = "world"
for x1 in msg1:
print(x1)
for x2 in {msg2,msg3}:
print(x2)
代码执行
MacBook-Pro:python Peng$ python3 for_str.py
# 此处为print(x1)
h
e
l
l
o
w
o
r
l
d
# 此处为print(x2)
hello
world
案例-for range
执行到第五次结束,从0开始
for x in range(5):
print(x)
for x in range(5):
print('===')
代码执行
MacBook-Pro:python Peng$ python3 for_range.py
0
1
2
3
4
===
===
===
===
===
案例2-for range
python2
中
占用空间,相当于
10
个鸡蛋
MacBook-Pro:python Peng$ python2
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,5)
[1, 2, 3 ,4]
python3
中
省空间:相当于一只能下
10
个鸡蛋的鸡
print(i)
必须缩进(格式)
>>> for i in range(10):
... print(i)
...
0
1
2
3
4
5
6
7
8
9
>>> for i in range(1,5):
... print(i)
...
1
2
3
4
附
**更多用法:**循环嵌套、多条件判断嵌套等案例,可参考以下博客内容,脚本为
shell
,虽语法不同,但循环与判断逻辑相同,故推荐参考~
Shell
方式参考博客推荐:模拟银行取款流程脚本
PS:博客含有多个循环相互套用的方法,含有while、for、if、case、PS3