006.python基础语法之循环结构

一、什么是循环

循环就是重复做某件事。

二、为何要有循环结构

为了让计算机能够像人一样能够重复做某件事。

三、如何使用循环结构

python为我们提供了两种使用循环的方法,一个是基础通用的while循环,另一个是在循环遍历取值上有效率优势的for循环。

(一)while循环

1.基础语法:

while 条件:
	代码1
    代码2
    ...

2.基本使用案例:

db_name = "egon"
db_pwd = "123"

while True:
    inp_name = input("请输入您的用户名: ")
    inp_pwd = input("请输入您的密码: ")

    if inp_name == db_name and inp_pwd == db_pwd:
        print("用户登录成功")
    else:
        print("用户账号或密码错误")

3.结束循环的两种方法:

(1)把条件改为False:

注意:如果有后续代码需要运行,则修改条件的方法比较好。

tag = True
while tag:
    while tag:
        while tag:
            tag = False
db_name = "egon"
db_pwd = "123"

tag = True
while tag:
    inp_name = input("请输入您的用户名: ")
    inp_pwd = input("请输入您的密码: ")

    if inp_name == db_name and inp_pwd == db_pwd:
        print("用户登录成功")
        tag = False  # 后续代码继续执行,else由于条件不成立,不执行,后续的print代码会执行。
    else:
        print("用户账号或密码错误")

    print('其他代码')
(2)break:直接终止本层循环
while True:  # 外层
    while True:  # 中层
        while True:  # 内层
            break  # 内层循环终止
        break  # 中层循环终止
    break  # 外层循环终止
db_name = "egon"
db_pwd = "123"

while True:
    inp_name = input("请输入您的用户名: ")
    inp_pwd = input("请输入您的密码: ")

    if inp_name == db_name and inp_pwd == db_pwd:
        print("用户登录成功")
        break  # 终止本层while循环,后续代码不再运行
    else:
        print("用户账号或密码错误")

    print('其他代码')

4.死循环与效率问题

使用while循环时,如果条件不变,循环就会无限执行下去,即成为死循环。

①如果循环仅仅时执行代码,并不会对计算机 造成太大负担。

 while True:
     name = input('用户名:')
     pwd = input('密码:')
     print(name,pwd)

②如果循环是重复计算,一直进行运算会造成CPU过载。

while True:
     1+1

5.while+continue:终止本次循环

(1)不要在continue后写统计代码,不会运行。

count = 0
while count <6:  # 5 < 6
    if count == 3 or count == 4:
        count += 1
        continue
        # count += 1  # 不要写在这里,不会被执行
    print(count)
    count += 1

(2)如果不想执行本次循环之后的代码,可以用continue,但本次循环如果没有需要运行的代码,就没必要加continue。

db_name = "egon"
db_pwd = "123"

while True:
    inp_name = input("请输入您的用户名: ")
    inp_pwd = input("请输入您的密码: ")

    if inp_name == db_name and inp_pwd == db_pwd:
        print("用户登录成功")
        break
    else:
        print("用户账号或密码错误")
        # continue

6.while+else:

while循环正常死亡后运行else。

count = 0
while count < 6:
    print(count)
    if count == 3:
        break  # break之后,后续代码不再执行
    count += 1
else:
    print("此段代码会在while循环正常死亡后运行")

7.while循环嵌套

while循环可以嵌套while循环,同样,打破循环的方法还是break和修改条件的方式。

①使用break打破循环

db_name = "J20"
db_pwd = "20110111"

while True:
    inp_name = input("请输入您的账号:").strip()
    inp_pwd = input("请输入您的密码:").strip()
    
    if inp_name = db_name and inp_pwd = db_pwd:
        print("用户%s登陆成功!" %(db_name))
        
        while True:
            print("""
            0 退出
            1 取款
            2 转账
            3 提现
            """)
            cmd = input("请输入命令:").strip()
            if cmd == "0":
                break
            elif cmd == "1":
                print("正在取款")
            elif cmd == "2":
                print("正在转账")
            elif cmd == "3":
                print("正在提现")
            elseprint("不存在的指令,请重新输入!")
        break
    else:
        print("用户名或密码错误")

②修改条件打破循环

db_name = "J20"
db_pwd = "20110111"

tag = True
while tag:
    inp_name = input("请输入您的账号:").strip()
    inp_pwd = input("请输入您的密码:").strip()
    
    if inp_name == db_name and inp_pwd == db_pwd:
        print("用户%s登陆成功!" %(db_name))
        
        while tag:
            print("""
            0 退出
            1 取款
            2 转账
            3 提现
            """)
            cmd = input("请输入命令:").strip()
            if cmd == "0":
                tag = False
            elif cmd == "1":
                print("正在取款")
            elif cmd == "2":
                print("正在转账")
            elif cmd == "2":
                print("正在提现")
            elseprint("不存在的指令,请重新输入!")
        
    else:
        print("用户名或密码错误")

(二)for循环

1.用途:

①for循环主要用于循环取值,例如列表、字典、字符串等。

②for循环的次数取决于值的个数;while循环的次数取决于条件什么时候变为False或者什么时候执行break。

2.基本使用

l = [111, 222, 333, 444, 555]
# 使用while循环取值
i = 0
while i < len(l):
    print(l[i])
    i += 1
# 使用for循环
for x in l:
    print(x)
    
d = {"k1": 111, "k2": 222, "k3": 333}
for k in d:
    print(k, d[k])  # 取出的是字典的key
    
msg = "hello"
for s in msg:
    print(x)
    
l = [["aaa": 1111], ["bbb", 2222], ["ccc", 3333]]
for x, y in l:  # 解压赋值的操作,x, y = ["aaa", 1111]
    print(x, y)

3.for+break

for x in [111, 222, 333, 444, 555]:
    if x == 333:
        break  # 取值到333结束循环取值
    print(x)

4.for+continue

for x in [111, 222, 333, 444, 555]:
    if x == 333:
        continue
    print(x)

5.for+else

for x in [111, 222, 333, 444, 555]:
    if x == 333:
        break
    print(x)
else:
    print("======>")  # for循环结束后继续运行其他代码

6.for+range及循换嵌套

for循环可以嵌套使用

for i in range(3):  # range,取值范围为左闭右开
    print("外层循环第%s次" % i)
    for j in range(2):
        print("===>>>内层循环第%s次" % j)
# 输出结果如下:
外层循环第0===>>>内层循环第0===>>>内层循环第1次
外层循环第1===>>>内层循环第0===>>>内层循环第1次
外层循环第2===>>>内层循环第0===>>>内层循环第1

) # for循环结束后继续运行其他代码




### 6.for+range及循换嵌套

for循环可以嵌套使用

```python
for i in range(3):  # range,取值范围为左闭右开
    print("外层循环第%s次" % i)
    for j in range(2):
        print("===>>>内层循环第%s次" % j)
# 输出结果如下:
外层循环第0次
===>>>内层循环第0次
===>>>内层循环第1次
外层循环第1次
===>>>内层循环第0次
===>>>内层循环第1次
外层循环第2次
===>>>内层循环第0次
===>>>内层循环第1次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值