44. python的for循环嵌套

news2024/12/26 12:43:49

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=王五。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 中在两个字典中查找公共键

Python 中要在两个词典中查找公共键: 使用 dict.keys() 方法获取每个字典的键的视图对象。使用 & 符号获取常用键。使用 list() 类将结果转换为列表对象。 dict1 {name: jiyik, topic: Python, salary: 100} dict2 {name: alice, salary: 100, experience: …

R语言探索BRFSS数据可视化

设定 加载包 最近我们被客户要求撰写关于BRFSS数据的研究报告,包括一些图形和统计输出。在本实验中,我们将使用dplyr软件包探索数据,并使用ggplot2软件包对其进行可视化以进行数据可视化 library(ggplot2) library(dplyr) 载入资料 load…

初识Netty框架

总体概述 Netty作为一款网络通信框架,底层封装了NIO。我们在使用Netty时,无需再关注NIO细节。下图为Netty处理流程图: 应用程序中使用Netty作为网络通信框架后,会形成一条PipeLine链,PipeLine链上有一个一个的事件处…

buuctf10(异或注入中文字符绕过preg_match伪随机数漏洞seed)

目录 [WUSTCTF2020] 颜值成绩(异或注入) [Zer0pts2020]Can you guess it?(中文字符绕过preg_match) [FBCTF2019]RCEService(/bin/调用命令 || 回溯绕过preg_match) [GKCTF 2021]easycms(后台弱口令&任意文件下载) [GWCTF 2019]枯燥的抽奖(伪随机数漏洞seed) [MRCTF20…

msprofiler 性能调优命令行实战(口罩识别推理)

案例介绍 本案例使用口罩识别推理程序作为例子进行演示,硬件平台是华为昇腾310设备(Ascend 310),该口罩识别使用目标检测中SSD模型,检测的结果有两个类别:戴口罩的脸、没带口罩的脸。成功执行推理程序后我们对其进行了推理调优&a…

连续7年领跑!在华为云桌面,藏了一盘数字办公的大棋

作者 | 曾响铃 文 | 响铃说 连续7年领跑!在国内虚拟客户端计算软件市场,华为云再度占据行业第一的位置,力压Citrix、Microsoft和VMware等全球知名厂商。 所谓的虚拟客户端计算软件市场,简单来理解就是云桌面市场。伴随着数字办…

Oracle报错:ORA-28001:口令已失效

一、链接Oracle报错 :ORA-28001:口令已失效 解决办法 原因:Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录 解决方式: 方式一&#xf…

R语言可视化探索BRFSS数据并逻辑回归Logistic回归预测中风

第1部分:关于数据 行为风险因素监视系统(BRFSS)是美国的年度电话调查。最近我们被客户要求撰写关于BRFSS的研究报告,包括一些图形和统计输出。BRFSS旨在识别成年人口中的危险因素并报告新兴趋势。例如,询问受访者饮食…

Python 并发编程

一.Python 对并发编程的支持 多线程:threading,利用CPU和IO可同时执行的原理,让CPU不会干巴巴等待IO完成,而是切换到其他Task(任务),进行多线程的执行。多进程:multiprocessing&…

微前端总结

微前端概述 微前端概念是从微服务概念扩展而来的,摒弃大型单体方式,将前端整体分解为小而简单的块,这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。可以理解微前端是一种将多个可独立交付的小型前端应用…

使用极限学习机进行股市预测(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 极限学习机(Extreme Learning Machine,ELM)作为前馈神经网络学习中一种全新的训练框架,在行为识别、情…

EPICS -- 使用asynPortDriver类编写示一个示例程序

本示例展示了如何使用asynPortDriver类编写一个EPICS端口驱动程序的示例。 这个驱动程序参数库中一个有5个参数,分别支持5个EPICS记录。 如下是具体步骤: 1) 用makeBaseApp.pl脚本建立这个IOC应用程序的框架: [blctrlmain-mach…

IDEA中如何实现git的cherry-pick可视化操作?

目录 问题现象: 问题分析: 解决方法: 拓展:如何回退提交记录? 问题现象: 今天在学习了git的cherry-pick功能,于是引出了一个问题: IDEA中如何实现git的cherry-pick可视化操作&am…

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

在上一篇中,我们使用docker commit 命令,创建了一个带有vim的Ubuntu镜像。那么怎么将这个镜像分享出去呢?本文就来讲解如何将本地的docker镜像发布到阿里云上。 本文主要内容: 1:本地镜像发布到阿里云流程 2&#xf…

Linux网络原理与编程(4)——第十四节 传输层协议

目录 前置知识 再谈端口号 几个函数 netstat telnet UDP报文 UDP协议端格式 UDP首部: UDP的特点 UDP的缓冲区 TCP报文详解 Tcp报头详解 传输层是在应用层的下面一层,我们在讲解传输层协议之前,先来说一说一些前置知识即命令函数等…

看完就会flink基础API

文章目录一、执行环境(Execution Environment)1、创建执行环境2、执行模式(Execution Mode)3、触发程序执行二、源算子(Source)1、数据源类准备2、从集合中读取数据3、从文件中读取数据4、从Socket中读取数据5、从Kafka中读取数据…

ISCSLP 2022 Program|希尔贝壳邀您参加第十三届中文口语语言处理国际会议

第十三届中文口语语言处理国际会议将于2022年12月11-14日(本周日~下周三)正式开启,本次会议中的部分Session将通过语音之家视频号进行线上直播,欢迎大家参加! 官网:www.iscslp2022.org 大会简介 中文口语…

ABAP学习笔记之——第十二章:SALV

一、概要 在Net Weaver 2004 平台上集合了利用函数和 GRID 的功能发布的 SALV 包程序 (SALV也称为 New ALV)。SALV 可以像利用函数生成 ALV 的不用创建屏幕就可以调用的全屏式ALV,还可以利用控制器在屏幕的控制器中显示 ALV。利用GRID 的ALV 虽然不能注册成 Batch …

速卖通知识产权规则介绍,如何才能规避侵权的问题?

最近有商家咨询到我,关于速卖通对商品知识产权是怎么评判的,今天就来给大家科普一下平台关于知识产权的规则介绍 速卖通平台严禁用户未经授权发布、销售涉嫌侵犯第三方知识产权的商品或发布涉嫌侵犯第三方知识产权的信息。 若卖家发布涉嫌侵犯第三方知…

从股票市场选择配对的股票:距离计算方法

我们来看看如何定义距离的计算方法。 回想一下,在共同趋势模型中,协整的必要条件是从共同趋势得到的新息序列必须完全相关。APT中的共同因子回报就理解成是从共同趋势得到的新息序列,因此,新息序列之间的相关系数就是共同因子回报…