Day6笔记-嵌套循环&break和continue使用

一、循环【重点掌握】

1.嵌套循环&九九乘法表

类似于嵌套if语句

语法:

while 表达式1:
    while 表达式2:
        语句
        
for 变量1 in 容器1:
    for 变量2 in  容器2:
        语句
        
while 表达式1:
    for 变量1 in 容器1:
        语句
        
for 变量1 in 容器1:
    while 表达式1:
        语句
# 应用:打印九九乘法表
"""
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
......
​
1*9=9 2*9=18 3*9=27  ......     7*9=63 8*9=72 9*9=81
​
规律:
    a.行数的取值范围:1~9
    b.每一行中列数的取值范围:1~当前行数
    c.格式:列*行=乘积
"""
# 1.基本语法
# a
n = 0
while n < 5:
    print(n)
    n += 1
m = 0
while m < 3:
    print(m)
    m += 1
​
print('*' * 30)
​
# b
# 注意:在代码执行的过程中,但凡遇到循环语句,都是先把当前循环执行完毕,然后代码才会向下执行
n = 0
while n < 5:
    m = 0        # 外层循环每次执行进来,m都会被重置为0
    while m < 3:
        print(n,m)
        m += 1
    n += 1
# 15
​
print('*' * 30)
​
for n in range(5):
    for m in range(3):
        print(n,m)
​
print('*' * 30)
​
# 思考:m = 0定义在外层循环的外面,将不会再被重置
n = 0
m = 0
while n < 5:
    while m < 3:
        print(n,m)
        m += 1
    n += 1
​
# 2.打印九九乘法表
# 应用:打印九九乘法表
"""
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
......
​
1*9=9 2*9=18 3*9=27  ......     7*9=63 8*9=72 9*9=81
​
规律:
    a.行数的取值范围:1~9
    b.每一行中列数的取值范围:1~当前行数
    c.格式:列*行=乘积
"""
# 外层循环:控制行数
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()
2.break和continue

【面试题】break和continue的区别break:打断,表示结束当前循环【break书写在哪个循环中,就结束哪个循环,就近原则】continue:继续,表示结束当前循环的本次循环,继续下一次循环

# 1.pass
# pass:通过,也是一个关键字,没有实际意义,但是可以用来完善程序的结构,常用于代码块中
# 说明:Python中所有的代码块想要结构完整,则必须至少书写一条语句,或者用pass暂时占位
# 注意:一般用于if  while for 函数 类 等代码块中都可以使用pass暂时占位
if 1:
    pass
else:
    print('no')
​
for n in range(10):
    pass
print('over')
​
​
# 注意:break和continue使用的前提是循环语句
# 2.break
# a.
'''
注意:
    a.break单独作为一条语句使用
    b.如果break应用在单层循环【while和for】中,在满足条件的情况下,表示结束循环,哪怕该循环还有无数次没有执行
    c.如果break应用在内层循环中,在满足条件的情况下,结束的是当前循环【就近原则】
'''
n = 0
while n < 10:
    print(n)
    if n == 3:   # 充当条件
        break
    n += 1
​
print('*' * 50)
​
# b.
n = 0
while n < 5:
    m = 0
    while m < 3:
        print(n,m)
        if n == 3:
            break
        m += 1
    n += 1
​
print('*' * 50)
​
n = 0
while n < 5:
    m = 0
    while m < 3:
        print(n, m)
        if m == 1:
            break
        m += 1
    n += 1
​
print('*' * 50)
​
# 3.continue
# 死循环
# n = 0
# while n < 10:
#     print(n)
#     if n == 3:
#         continue
#     n += 1
#     print('over~~~~~~')
​
# 使用场景:只有某次循环未被执行完,其他次循环正常执行
n = 0
while n < 10:
    if n == 3:
        n += 1
        continue
    print(n)
    n += 1
    print('over~~~~~~')
3.循环综合练习
# 2.猜数字游戏
'''
从控制台输入一个数,和程序产生的随机数进行比较
控制台输入的数  > 随机数 ,提示:你猜大了,往小了猜
控制台输入的数  < 随机数 ,提示:你猜小了,往大了猜
控制台输入的数  == 随机数 ,提示:恭喜你,猜对了
如果猜对,则游戏结束
'''
import  random
'''
注意:
    如果不确定循环的次数,则使用while,常用死循环while True结合break使用
    如果确定循环的次数,则使用for【range()】,常用for
'''
random_num = random.randint(1,100)
print(random_num)
guess_count = 0
while True:
    input_num = input('请输入一个1~100之间的整数:')
    if input_num.isdigit():
        input_num = int(input_num)
        if input_num in range(1,101):  # 成员运算符
            guess_count += 1
            if input_num > random_num:
                print('你猜大了,往小了猜')
            elif input_num < random_num:
                print("猜小了,往大了猜")
            else:
                print('恭喜你,猜对了')
                # 如果猜对,则游戏结束,使用break打断死循环
                break
        else:
            print('范围有误')
    else:
        print('输入有误')
​
print(f'总共猜了{guess_count}次')
if guess_count > 7:
    print('智商有点捉急啊,怪不得彩票中不了奖')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值