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

posted @ 2022-06-09 18:26  秋风お亦冷  阅读(40)  评论(0编辑  收藏  举报