简单分享 for循环,从基础到高级

1. 基础篇:Hello, For Loop!

想象一下,你想给班上的每位同学发送“Hello!”,怎么办?那就是for循环啦,

eg:首先有个名字的列表,for循环取出,分别打印

names = ["Alice", "Bob", "Charlie"]
for name in names:
    print(f"Hello, {name}!")

2. 计数助手:enumerate来帮忙

给每个同学编号,是不是更正式点?enumerate函数能助你一臂之力:

for num,name in enumerate(names):

   print(f"{i+1}. Hello, {name}!")

3. 列表生成式:简洁之美

想要快速创建一个新列表,比如每个名字后面加个"!"?

excited_names = [f"{name}!" for name in names]
print(excited_names)

4. 范围函数range的魔法

想数数?range函数是你的数字精灵:

for i in range(9):  # 从0到8,数头不数尾
    print(i)

5. 嵌套循环:编织复杂图案

记得小时候的九九乘法表吗?Python帮你轻松绘制:俄罗斯套娃,一层又一层。

for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}x{i}={i*j}", end="\t")
    print()  # 换行

6. break和continue:控制流的指挥棒

遇到不喜欢的同学,直接跳过?continue出场:

for name in names:
    if name == "Bob":
        continue
    print(f"Hello, {name}!")

7. else子句:循环的附加惊喜

你知道吗?for循环后还能跟个else?如果循环正常结束,没有遇到breakelse里的代码就执行。

for i in range(5):
    if i == 3:
        break
else:
    print("循环顺利完成,没被break掉!")

8. 使用zip:并行处理

有两组数据要一起处理?zip函数让你左右开弓:zip就像一条神奇的纽带,把列表绑在一起

names = ["Alice", "Bob", "Charlie"]
ages = [16, 17, 20]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

9. 遍历字典:键值对的舞蹈

字典里的秘密,for也能探查:通过.items(),每个键值对都跳起了双人舞。

my_dict = {"pear": 5, "banana": 9, "orange": 98}
for key, value in my_dict.items():
    print(f"I have {value} {key}(s).")

10. 逆序循环:时光倒流

想反着数数,或者倒着念名字?用reversed函数:时光倒流,从最后一个同学开始告别。

for name in reversed(names):
    print(f"Goodbye, {name}!")

11. 迭代器与next函数:深海探险

知道吗?所有可迭代对象都可以用迭代器来玩:iter()制造潜水艇,next()带你潜入下一个宝藏。

it = iter(names)
print(next(it))  
print(next(it))  

12. 高级技巧:列表推导结合条件判断

结合条件,快速筛选出喜欢的名字:

vowel_start_names = [name for name in names if name[0].lower() in 'aeiou']
print(vowel_start_names)

13. 生成器表达式:轻量级迭代神器

生成器是Python的一大特色,非常适合处理大数据流。

# 生成所有小于10的平方数,但不一次性加载到内存中
squares = (i**2 for i in range(10))
for square in squares:
    print(square)

14. 列表推导与循环嵌套的高级应用

当你需要处理多维数据时,嵌套的列表推导可以非常直观:这段代码仿佛是在进行空间变换,将矩阵沿主对角线翻转。

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 转置矩阵
transposed = [[row[i] for row in matrix] for i in range(3)]
for row in transposed:
    print(row)

15. 利用itertools:循环的高级工具箱

Python的itertools模块提供了强大的迭代工具。比如,你想交替合并两个列表:

itertools就像一个瑞士军刀,里面藏着各种循环处理的利器。

from itertools import chain

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

# 使用chain交替合并
merged = list(chain.from_iterable(zip(list1, list2)))
print(merged)  # 结果: [1, 'a', 2, 'b', 3, 'c']

16. 循环效率优化:理解迭代原理

了解Python的迭代机制能帮助你写出更高效的代码。例如,避免在循环内部进行列表的append操作,特别是在循环体很大时,可以考虑预分配列表大小或使用列表生成式。

17. 循环与异常处理:稳健的循环

在处理可能抛出异常的循环时,使用try-except可以增加代码的健壮性,即使遇到除以零的错误,循环也不会终止,而是优雅地处理异常,eg:

numbers = [1, 0, 3, 4]
for num in numbers:
    try:
        print(1 / num)
    except ZeroDivisionError:
        print("Oops! Can't divide by zero.")

好了,今天的分享就到这里了,有喜欢的哥哥姐姐们,欢迎大家留言讨论^_^如果本文对你有帮助,请点赞、转发哦

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW与PLC通讯方式及比较

LabVIEW与PLC之间的通讯方式多样,包括使用MODBUS协议、OPC(OLE for Process Control)、Ethernet/IP以及串口通讯等。这些通讯方式各有特点,选择合适的通讯方式可以提高系统的效率和稳定性。以下将详细介绍每种通讯方式的特点、优点…

Ubuntu24.04 Isaacgym的安装

教程1 教程2 教程3 1.下载压缩包 link 2. 解压 tar -xvf IsaacGym_Preview_4_Package.tar.gz3. 从源码安装 Ubuntu24.04还需首先进入虚拟环境 python -m venv myenv # 创建虚拟环境,已有可跳过 source myenv/bin/activate # 激活虚拟环境python编译 cd isaa…

Redis---保证主从节点一致性问题 +与数据库数据保持一致性问题

保证主从节点一致性问题 Redis的同步方式默认是异步的,这种异步的同步方式导致了主从之间的数据存在一定的延迟,因此Redis默认是弱一致性的。 解决: 1.使用Redisson这样的工具,它提供了分布式锁的实现,确保在分布式环…

React 中 useEffect

React 中 useEffect 是副作用函数,副作用函数通常是处理外围系统交互的逻辑。那么 useEffect 是怎处理的呢?React 组件都是纯函数,需要将副作用的逻辑通过副作用函数抽离出去,也就是副作用函数是不影响函数组件的返回值的。例如&a…

Codeforces Round 954 (Div. 3)(A~E)

目录 A. X Axis B. Matrix Stabilization C. Update Queries D. Mathematical Problem A. X Axis Problem - A - Codeforces 直接找到第二大的数&#xff0c;答案就是这个数与其他两个数的差值的和。 void solve() {vector<ll>a;for (int i 1; i < 3; i){int x;…

【实战】EasyExcel实现百万级数据导入导出

文章目录 前言技术积累实战演示实现思路模拟代码测试结果 前言 最近接到一个百万级excel数据导入导出的需求&#xff0c;大概就是我们在进行公众号API群发的时候&#xff0c;需要支持500w以上的openid进行群发&#xff0c;并且可以提供发送openid数据的导出功能。可能有的同学…

002-基于Sklearn的机器学习入门:基本概念

本节将继续介绍与机器学习有关的一些基本概念&#xff0c;包括机器学习的分类&#xff0c;性能指标等。同样&#xff0c;如果你对本节内容很熟悉&#xff0c;可直接跳过。 2.1 机器学习概述 2.1.1 什么是机器学习 常见的监督学习方法 2.1.2 机器学习的分类 机器学习一般包括监…

C++初学者指南-3.自定义类型(第一部分)-析构函数

C初学者指南-3.自定义类型(第一部分)-析构函数 文章目录 C初学者指南-3.自定义类型(第一部分)-析构函数特殊的成员函数用户定义的构造函数和析构函数RAII示例&#xff1a;资源处理示例&#xff1a;RAII记录零规则 特殊的成员函数 T::T()默认构造函数当创建新的 T 对象时运行。…

配置WLAN 示例

规格 仅AR129CVW、AR129CGVW-L、AR109W、AR109GW-L、AR161W、AR161EW、AR161FGW-L、AR161FW、AR169FVW、AR169JFVW-4B4S、AR169JFVW-2S、AR169EGW-L、AR169EW、AR169FGW-L、AR169W-P-M9、AR1220EVW和AR301W支持WLAN-FAT AP功能。 组网需求 如图1所示&#xff0c;企业使用WLAN…

C++(第一天-----命名空间和引用)

一、C/C的区别 1、与C相比   c语言面向过程&#xff0c;c面向对象。   c能够对函数进行重载&#xff0c;可使同名的函数功能变得更加强大。   c引入了名字空间&#xff0c;可以使定义的变量名更多。   c可以使用引用传参&#xff0c;引用传参比起指针传参更加快&#…

基于YOLOv9+pyside的安检仪x光危险物物品检测(有ui)

安全检查在公共场所确保人身安全的关键环节&#xff0c;不可或缺。X光安检机作为必要工具&#xff0c;在此过程中发挥着重要作用。然而&#xff0c;其依赖人工监控和判断成像的特性限制了其应用效能。本文以此为出发点&#xff0c;探索了基于Torch框架的YOLO算法在安检X光图像中…

Xcode安装Simulator失败问题解决方法

Xcode安装Simulator_Runtime失败&#xff0c;安装包离线安装保姆级教程 Xcode更新之后有时候会提示要安装模拟器运行时环境&#xff0c;但是用Xcode更新会因为网络原因&#xff0c;我觉得基本上就是因为苹果服务器的连接不稳定导致的&#xff0c;更可气的是不支持断点续…

【论文阅读】--Popup-Plots: Warping Temporal Data Visualization

弹出图&#xff1a;扭曲时态数据可视化 摘要1 引言2 相关工作3 弹出图3.1 椭球模型3.1.1 水平轨迹3.1.2 垂直轨迹3.1.3 组合轨迹 3.2 视觉映射与交互 4 实施5 结果6 评估7 讨论8 结论和未来工作致谢参考文献 期刊: IEEE Trans. Vis. Comput. Graph.&#xff08;发表日期: 2019&…

DICOM灰度图像、彩色图像的窗宽、窗位与像素的最大最小值的换算关系?

图像可以调整窗宽、窗位 dicom图像中灰度图像可以调整窗宽、窗位&#xff0c;RGB图像调整亮度或对比度&#xff1f;_灰度 图 调节窗宽-CSDN博客 窗宽、窗位与像素的最大最小值的换算关系? 换算公式 max-minWindowWidth; (maxmin)/2WindowCenter; 详细解释 窗宽&#xff0…

视频太大怎么压缩变小?6款视频压缩软件免费版分享

视频太大怎么压缩得又小又清晰呢&#xff1f;无论是视频文件传输、视频文件存储&#xff0c;还是进行自媒体视频上传&#xff0c;都对视频文件的大小有一定的限制。高质量的视频文件往往伴随着文件占据大量存储空间&#xff0c;导致文件传输速度变慢。今天教大家6种视频压缩软件…

试用笔记之-汇通来电显示软件

首先汇通来电显示软件下载 http://www.htsoft.com.cn/download/httelephone.rar

IP白名单及其作用解析

在网络安全领域&#xff0c;IP白名单是一项至关重要的策略&#xff0c;它允许特定的IP地址或地址范围访问网络资源&#xff0c;从而确保只有受信任的终端能够连接。下面&#xff0c;我们将深入探讨IP白名单的定义、作用以及实施时的关键考虑因素。 一、IP白名单的定义 IP白名单…

深度学习21-30

1.池化层作用&#xff08;筛选、过滤、压缩&#xff09; h和w变为原来的1/2&#xff0c;64是特征图个数保持不变。 每个位置把最大的数字取出来 用滑动窗口把最大的数值拿出来&#xff0c;把44变成22 2.卷积神经网络 &#xff08;1&#xff09;conv&#xff1a;卷积进行特征…

stm32学习笔记---USART串口协议(理论部分)

目录 通信 通信的目的 通信协议 STM32的通信协议 各种协议的通信引脚介绍 通信空间和时间 时钟特性 电平特性 设备特性 串口通信 硬件电路 电平标准 串口参数及时序 时序 串口的参数 串口通信的实际波形 声明&#xff1a;本专栏是本人跟着B站江科大的视频的学习…

Vue 项目部署为 HTTPS 站点

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;爱蹦跶的大A阿 &#x1f525;当前正在更新专栏&#xff1a;《JavaScript保姆级教程》、《VUE》、《Krpano》 ✨ 前言 在将 Vue 项目部署为 HTTPS 站点时&#xff0c;你需要配置 HTTPS 证书和服务器。以下是一个基本的步骤和…