【代码随想录python笔记整理】第九课 · 打印正方形

前言:本笔记仅仅只是对内容的整理和自行消化,并不是完整内容,如有侵权,联系立删。

一、循环嵌套

       在之前我们已经使用过许多循环结构了,但数据的组织形式有些时候并不是线性的,还可能是多维的,比如说数学中的矩阵、表格、游戏棋盘等等。

       那么对于一个二维的列表,我们可以理解为它是一个包含了其他列表的列表,即它的每一个元素都是一个列表。二维列表的元素可以通过两个索引来访问,一个索引访问行,一个索引访问列,例如:lists [0] [0] 表示第一行第一列的元素。

       由于列表是二维的,我们想要通过一层 for 循环来实现遍历是不太现实的,这就需要使用到循环嵌套。

# 创建一个包含二维数据的二维列表,即列表的每一个元素都是一个列表
matrix = [
    [1, 2, 3, 4, 5 ],
    [6, 7, 8, 9, 10],
    [11,12,13,14,15],
    [16,17,18,19,20],
    [21,22,23,24,25]
]

# 遍历二维列表
for row in matrix: # 外部循环迭代行,也就是第一行,第二行... 第n行
    for item in row: #  内部循环迭代列,也就是第一列,第二列...第n列
        print(item, end=" ") # 输出元素值
    # 在每行结束后换行
    print()

       上述过程就是使用了循环嵌套,外部和内部分别控制行和列,从而通过这两个循环的嵌套,可以遍历整个二维列表。

二、利用循环嵌套解题

       题目要求我们模拟打印一个正方形的框,根据题目可以联想到我们需要使用循环嵌套来控制行和列的打印,并根据当前行和列的位置来决定打印 "*"(外部边界)还是空白(内部)。于是我们考虑到使用 if - else 语句来判断位置。最终,我们可以写出如下程序:

n = int(input())  # 输入正方形的边长

# 打印正方形框
for i in range(n):
    for j in range(n):
        # 判断是否在边界位置,如果是,则打印 "*"
        if i == 0 or i == n - 1 or j == 0 or j == n - 1:
            print("*", end="")
        else:
            # 否则,打印空格
            print(" ", end="")
    # 换行到下一行输出
    print()

三、两种循环嵌套展示

       之前我们总共学过两种循环嵌套,分别是 while 循环和 for 循环,那么嵌套自然也有4种,但其实纯粹的 while 循环嵌套和纯粹的 for 循环嵌套往往更为常见,我们接下来就来把两种样子都展示一下。

i = 1
while i <= 5:
      # 重置内部循环的计数器
    j = 1
    while j <= 5:
        # 嵌套循环的代码
        j += 1
    # 下一轮循环
    i += 1
for i in range(5):
    for j in range(5):
        if j == 2:	# 当 j == 2时,跳出内层循环,但是会进行 i + 1的下一轮循环
            break  # 这将退出内层循环,但外层循环仍然继续执行

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值