44. python的for循环嵌套

44. python的for循环嵌套

文章目录

  • 44. python的for循环嵌套
    • 1. 什么是嵌套
    • 2. for循环中嵌套有if条件判断语句
      • 2.1 先创建一个奇数序列
      • 2.2 判断一个数是否能被7整除
      • 2.3 将2部分代码合二为一
    • 3. for循环中嵌套有for循环

1. 什么是嵌套

嵌套是指一个对象中包含另一个与它相似的对象。

俄罗斯套娃就是典型的嵌套,一个套娃里有多个外观相同,大小不同的娃。

【Python中的嵌套】

列表嵌套:列表的元素为列表。

if嵌套:if语句中嵌套有一个或多个if语句。

for循环嵌套:for循环语句中嵌套有一个或多个for循环语句或if语句。

2. for循环中嵌套有if条件判断语句

【实操练习】

选出1至100中能被7整除的奇数。

2.1 先创建一个奇数序列

【方法1】

# 用range函数建一个奇数序列,起始数字为1,结束数字为100,步长为2
r = range(1,100,2) 

# 用list函数查看创建的奇数序列
print(list(r))

【终端输出】

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]

观察输出结果,确实都为奇数。

【方法2】

# 用range函数建一个奇数序列,起始数字为1,结束数字为100,步长为2
r = range(1,100,2) 

# 用for循环查看创建的奇数序列
# 注意不要省略英文冒号
for i in r :
    # 注意有4个空格的缩进
    print(i)

【终端输出】

因为太占用篇幅,这里不展示输出内容。

2.2 判断一个数是否能被7整除

一个数如果能被7整除则余数为0。

a = 14

# 除法
print(a/7)

# 取余
print(a%7)

【终端输出】

2.0
0

/是Python的除号:因此a/7=14/7=2.0

%是Python的取余号:因此a%7=14%7=0

a = 14

print(a%7)

if a%7 == 0 :
    print("能被7整除!")
else:
    print("不能被7整除!")

【终端输出】

0
能被7整除!
a = 8

print(a%7)

if a%7 == 0 :
    print("能被7整除!")
else:
    print("不能被7整除!")

【终端输出】

1
不能被7整除!

2.3 将2部分代码合二为一

# 用range函数建一个奇数序列,起始数字为1,结束数字为100,步长为2
r = range(1,100,2) 

# 用for循环依次取出奇数序列中的数字
# 注意不要省略英文冒号
for i in r :
    # 注意有4个空格的缩进
    # 判断该数字除以7的余数是否等于0
    if i % 7 == 0 :
        # 如果能被7整除则输出该数字
        print(i)
print("程序结束!")

【终端输出】

7
21
35
49
63
77
91
程序结束!

【代码解析】

  1. for循环的作用是从range对象中依次取出数字并赋值给变量i。

  2. if语句就是for循环的循环体,是每一次循环都需要执行的语句。

  3. 它相对于for来说要有4个空格的缩进。

  4. print(i)是if判读语句要执行的代码,它相对于if来说要有4个空格的缩进。

  1. 因为这里只需要输出能被7整除的数字,因此这里就没有用else输出不能被7整除的数字。

  2. for 循环一定要注意print的位置。

print(i)相对于if有4个空格的缩进,说明它是if判断语句要执行的语句。

一整个if语句相对for循环语句有4个空格的缩进,它是for循环中要循环执行的代码。

print(“程序结束!”)与for是对齐的,没有缩进,说明它不是循环中的代码,只有循环结束时,才会执行该语句。

在编写循环语句的时候,大家一定要注意print的位置。

【思路解析】

初学者编写代码的时候,可以先将代码拆开。

拆成若干个我们能理解的代码块。

这样做的好处一是理清思路,二是能方便我们查找程序报错的原因。

3. for循环中嵌套有for循环

【实操练习】

输出注射过疫苗的同学的姓名。

# 新建一个列表存储注射过北京生物疫苗的同学
BJ = ["刘一","陈二"]
# 新建一个列表存储注射过科兴中维疫苗的同学
KX = ["张三","李四","王五"]
# 新建一个总列表存储注射过疫苗的同学
zong = [BJ, KX]

# 从总列表中输出注射过疫苗的同学
for x in zong :
    print(x)
print("程序结束!")

【终端输出】

['刘一', '陈二']
['张三', '李四', '王五']
程序结束!

观察输出结果,发现输出的是两个列表,并没有直接输出同学的姓名。

那如何输出同学的姓名呢,我们只需再嵌套一个for循环即可。

# 新建一个列表存储注射过北京生物疫苗的同学
BJ = ["刘一","陈二"]
# 新建一个列表存储注射过科兴中维疫苗的同学
KX = ["张三","李四","王五"]
# 新建一个总列表存储注射过疫苗的同学
zong = [BJ, KX]

for x in zong :
    for y in x :
        print(y)
print("程序结束!")

【终端输出】

刘一
陈二
张三
李四
王五
程序结束!

【for循环嵌套的执行流程】

【代码解析】

上述代码有2个for循环语句。

把第1个for循环语句叫做外循环。

把第2个for循环语句叫做内循环。

第1次外循环for x in zong :表示从zong列表中取值并赋值给变量x

zong列表里有2个元素,第1次外循环从zong列表中取出BJ赋值给变量x。

X=BJ

BJ = ["刘一","陈二"]

x取到值后代码继续往下执行。

内循环for y in x :表示从X中取值并赋值给变量y

即从列表BJ中依次取出元素并赋值给变量y。

第1次内循环y=刘一。

y取到值后,后面没有需要循环的代码,程序返回内循环,继续执行第2次内循环。

第2次内循环y=陈二。

此时,x中的值即列表BJ里的值已经取出完毕,内循环结束,程序返回外循环。

第2次外循环for x in zong :表示从zong列表中取值并赋值给变量x

此时,x取到的值是KX。

x=kx

KX = ["张三","李四","王五"]

又开始第2轮内循环。

第3次内循环y=张三。

第4次内循环y=李四。

第5次内循环y=王五。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年6月7日
下一篇 2023年6月7日

相关推荐