流程控制语句-for循环&break和continue的使用

一、循环语句之for【重点掌握】

1.基本语法

语法:

​ for 变量名 in 序列:

​ 循环体

功能:for循环主要用于遍历任何序列【容器】,比如列表,字符串,元组,字典和集合等

遍历:指的是依次访问序列中的每一个元素,获取每个元素值

说明:按照顺序获取序列中的每个元素,赋值给变量名,再执行循环体,如此循环往复,直到取完序列中所有的元素为止

"""
for 变量名 in 序列:

		循环体

注意:
    1.变量名自定义,只要是一个合法的标识符即可
    2.序列一般指的是列表,字符串,元组,字典和集合等容器
    3.for循环的循环次数是由序列中的数据的个数  或 由序列的长度  决定的
"""

# 1.字符串
for a in "hello":
    print(a)

# 工作原理:将h取出,赋值给a,然后打印,接着将e取出,重新赋值给a,再接着打印,。。。依次类推,
# 直到字符串hello中的所有字符全部获取完,则循环结束

# 2.列表
numlist = [23,5,6,7,7,87,9,0]
for num in numlist:
    print(num)

# 3.range(start,end,step)本质是生成一个数据具有某种规律的容器,其中的数据一般都是等差数列
for i in range(10):
    print(i)


for j in range(1,21,2):
    print(j)


"""
总结:
    while循环:如果不确定循环的次数,则优先使用while循环的死循环
    for循环:如果确定循环的次数,则优先使用for循环
    在实际项目开发中,for循环使用较多
"""
2.使用
# 1.打印0~9的数字
n1 = 0    # 0--->start
while n1 <= 9:    # 9----->end - 1
    print(n1)
    n1 += 1       # n1 += 1 ------>step

for m1 in range(10):
    print(m1)

print("*" * 30)

# 2.求1~100之间所有整数的和
n2 = 1
total2 = 0
while n2 <= 100:
    total2 += n2
    n2 += 1
print(total2)

total2 = 0
for m2 in range(1,101):
    total2 += m2
print(total2)

print("*" * 30)

# 3.求1~100之间所有偶数的和
# 方式一
n31 = 1
total31 = 0
while n31 <= 100:
    if n31 % 2 == 0:
        total31 += n31
    n31 += 1
print(total31)

total31 = 0
for m31 in range(1,101):
    if m31 % 2 == 0:
        total31 += m31
print(total31)

# 方式二
n32 = 2
total32 = 0
while n32 <= 100:
    total32 += n32
    n32 += 2
print(total32)

total32 = 0
for m32 in range(2,101,2):
    total32 += m32
print(total32)

print("*" * 30)


# 4.求1-2+3-4......+97-98+99-100的值
n4 = 1
total4 = 0
while n4 <= 100:
    if n4 % 2 == 0:
        total4 -= n4
    else:
        total4 += n4
    n4 += 1
print(total4)

total4 = 0
for m4 in range(1,101):
    if m4 % 2 == 0:
        total4 -= m4
    else:
        total4 += m4
print(total4)

print("*" * 30)

# 5.统计1~100之间能被3或6整除的数的个数
n5 = 1
count5 = 0
while n5 <= 100:
    if n5 % 3 == 0 or n5 % 6 == 0:
        count5 += 1
    n5 += 1
print(count5)

count5 = 0
for m5 in range(1,101):
    if m5 % 3 == 0 or m5 % 6 == 0:
        count5 += 1
print(count5)

print("*" * 30)

# 6.求10的阶乘
n6 = 1
total6 = 1
while n6 <= 10:
    total6 *= n6
    n6 += 1
print(total6)

total6 = 1
for m6 in range(1,11):
    total6 *= m6
print(total6)


# 7.打印九九乘法表
# 外层循环:控制行
row = 1
while row <= 9:
    # 内层循环:控制列
    col = 1
    while col <= row:
        # 循环体
        print(f"{col}*{row}={col * row}",end=" ")
        col += 1
    row += 1
    # 换行
    print()

for row in range(1,10):
    for col in range(1,row + 1):
        print(f"{col}*{row}={col * row}", end=" ")
    print()


# 扩展:f"{数据1} {数据2} {数据3}"
print(f"{10}-{20}")
print(f"姓名:{'张三'},年龄:{18},身高:{172.0}")

name = "小明"
print(f"大家好,我是{name}")   # 大家好,我是小明
print(f"大家好,我是name")    # 大家好,我是name

二、break和continue【重点掌握】

1.break
# 1.
n = 0
while n < 10:
    print(n)
    n += 1
# 0~9

print("*" * 30)

# 2.break是一个关键字,可以单独作为一条语句使用
# 作用:主要应用在循环中,包括while循环和for循环,在满足条件的情况下,可以提前结束循环
# 官方解释:跳出循环/结束循环
n = 0
while n < 10:
    print(n)
    if n == 4:
        break
    n += 1
# 0~4

print("*" * 30)

# 3.break应用在嵌套循环中,break结束的是当前循环【就近原则】
for a in range(3):
    for b in range(5):
        print(f"{a}={b}")
# 15

print("*" * 30)

for a in range(3):
    for b in range(5):
        print(f"{a}={b}")
        if b == 2:
            break
# 9


# 4.练习
# 需求1:猜数字游戏
"""
让程序产生一个指定范围内的随机数,让用户猜【从控制台输入】,进行数据比较
直到猜中,表示游戏结束
"""
"""
import  random
# 产生一个1~100之间的随机数
random_num = random.choice(range(1,101))
print(random_num)
# 定义一个变量,用于统计猜的次数
count = 0
while True:
    count += 1
    # 用户输入的数
    input_num = int(input("请输入一个1~100之间的整数:"))
    # 比较大小
    if input_num > random_num:
        print("猜大了,往小了猜 ")
    elif input_num < random_num:
        print("猜小了,往大了猜")
    else:
        print("恭喜你,猜中了")
        # 当猜中之后,表示游戏结束,跳出死循环
        break
print(f"你总共猜了{count}次")
if count > 6:
    print("智商余额不足,请充值")
"""

# 需求2:模拟用户的登录过程,用户名或密码允许错误三次,如果超过三次,则禁止登录
# 当用户名为admin,密码为123时,则表示登录成功
for _ in range(3):
    username = input("请输入你的用户名:")
    password = input("请输入你的密码:")
    if username == "admin" and password == "123":
        print("登录成功")
        break
    else:
        print("用户名或密码输入有误,请重新登录")
else:
    print("已经输入错误三次,禁止再次输入")


# 注意1:如果for循环仅仅用来控制次数,其中的变量在循环体中未被使用,则可以使用下划线替代
# 注意2:while和for的使用基本相同,都有else分支,用法也完全相同
# 结论:如果while语句 或 for语句 中出现了break,且break有机会被执行到,则else分支没有执行的机会
2.continue

# break:打断/结束
# continue:继续/接着

# 1.
n = 0
while n < 10:
    print(n)
    n += 1
# 0~9

print("*" * 30)

# 2.continue:结束本次循环,继续下一次循环
# break:直接跳出当前循环,表示整个循环全部结束
n = 0
while n < 10:
    print(n)
    if n == 4:
        n += 1
        continue
    n += 1

n = 0
while n < 10:
    if n == 4:
        n += 1
        continue
    print(n)
    n += 1

# 3.需求:模拟用户的登录过程,用户名或密码允许错误三次,如果超过三次,则禁止登录
# 当用户名为admin,密码为123时,则表示登录成功

error_num = 0

while True:
    username = input("请输入你的用户名:")
    password = input("请输入你的密码:")
    if username == "admin" and password == "123":
        print("登录成功")
        break
    else:
        print("用户名或密码输入有误,请重新登录")

        error_num += 1

        if error_num == 3:
            print("已经错误三次,禁止输入")
            # 结束循环
            break
            # 结束程序
            # exit()
        else:
            continue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值