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

news2025/1/6 19:00:31

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.coloradmin.cn/o/1887207.html

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

相关文章

从零开始实现大语言模型(一):概述

1. 前言 大家好,我是何睿智。我现在在做大语言模型相关工作,我用业余时间写一个专栏,给大家讲讲如何从零开始实现大语言模型。 从零开始实现大语言模型是了解其原理及领域大语言模型实现路径的最好方法,没有之一。已有研究证明&…

服务器BMC基础知识总结

前言 因为对硬件方面不太理解,所以打算先从服务器开始学习,也想和大家一起分享一下,有什么不对的地方可以纠正一下哦!谢谢啦!互相学习共同成长~ 1.BMC是什么? 官方解释:BMC全名Baseboard Mana…

java面试课程-SpringIOC部分源码解析

1.SpringIOC的refresh源码解析 核心: 核心使用的是: 需要完成配置类的解析,各种BeanFactoryProcessor的注册。还有写国际化配置的初始化。Web容器的内部构造。 上面几个方法是refresh方法的内容。注意可以与applicationContext里的内容一起…

【Linux从入门到放弃】探究进程如何退出以进程等待的前因后果

🧑‍💻作者: 情话0.0 📝专栏:《Linux从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 进…

编写动态库

1.创建库.c .h文件 2.编写Makefile文件 3.make之后形成.so文件 4.make output,形成mylib 5.把mylib拷贝到test里面 mv mylib /test 6.编译 gcc main.c -I mylib/include -L mylib/lib -lmymethod形成a.out 但是直接执行会出现以下问题 很显然没有找到动态库 7.解决加载找不…

FIO压测磁盘性能以及需要注意的问题

一、压测类型 1、顺序读(IO):read,bs1M,job数从1开始往上加:2、3、4... 2、顺序写(IO):write,bs1M,job数从1开始往上加:2、3、4... …

基于索尼基于索尼Spresense的眼睛跟随平台中两个模型的对比

1.模型一(现在使用的) 这个模型是一个简单的神经网络,由三个主要组件组成:输入层、一个全连接层(Affine层)、一个Sigmoid激活函数层和一个Binary Cross Entropy损失层。 以下是每个组件的说明: Input 层:这…

2024 COMMUNITY DAY User Group 社区嘉年华 云计算与 AI 技术交融盛会共筑多元智慧未来

亚马逊云科技User Group,深圳 Community Day 活动流程抢先知道! ⏰ 7月7日 🏠 深圳南山区香港中文大学 📣主论坛国际大咖云集,共襄科技盛宴! 🎉三大主题论坛:人工智能、大数据、动…

heic格式转化jpg,手把手教你将heic转换成jpg【办公必备】

一、什么是heic heic格式是一种高效的图片格式,它可以在较小的文件大小下提供高质量的图片。 二、如何打开heic 然而,这种图片因其格式的特殊性,在实际应用中仍存在一些问题:压缩效果可能不够理想,一些老旧的软件和设…

无线领夹麦克风品牌排名更新,手机直播麦克风前十排名!

在自媒体时代,音频设备尤其是麦克风的重要性日益凸显。技术的革新带来了麦克风品类的多样化,满足了从传统录制到现代自媒体创作的广泛需求。音频质量是决定视频作品能否吸引并留住观众的关键因素。在众多麦克风品牌中,挑选一款性能卓越的产品…

一切为了安全丨2024中国应急(消防)品牌巡展武汉站成功召开!

消防品牌巡展武汉站 6月28日,由中国安全产业协会指导,中国安全产业协会应急创新分会、应急救援产业网联合主办,湖北消防协会协办的“一切为了安全”2024年中国应急(消防)品牌巡展-武汉站成功举办。该巡展旨在展示中国应急(消防&am…

【软件测试】单元测试、系统测试、集成测试详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、单元测试的概念 单元测试是对软件基本组成单元进行的测试,如函数或一个类的方法…

cesium 聚合

cesium 聚合(下面附有源码) 示例代码 <html lang="en"><head><!-- Use correct character set. -->

AI工具哪里找?这个ai导航网站绝对是你不可错过的宝藏

这两年来&#xff0c;人工智能技术飞速发展并且已经渗透到我们生活的方方面面&#xff0c;从简单的日常任务到复杂的专业领域&#xff0c;AI工具的应用越来越广泛。 无论是办公一族还是设计师&#xff0c;教师等&#xff0c;都开始利用AI&#xff0c;提高自己的工作效率。 如…

QChartView显示实时更新的温度曲线图(动态曲线图)

文章目录 参考图1. 项目结构2. CMakeLists.txt3. main.cpp4. TemperatureSeries.qml5. main.qml6. 说明参考博客参考图 要在Qt QML中使用QChartView显示实时更新的温度曲线图,我们需要使用Qt Charts模块和一些QML组件。下面是一个完整的示例代码,以及详细说明每个部分的作用。…

代码生成器使用指南,JeecgBoot低代码平台

JeecgBoot 提供强大的代码生成器&#xff0c;让前后端代码一键生成&#xff0c;实现低代码开发。支持单表、树列表、一对多、一对一等数据模型&#xff0c;增删改查功能一键生成&#xff0c;菜单配置直接使用。 同时提供强大模板机制&#xff0c;支持自定义模板&#xff0c;目…

基于Canvas的Html5多时区动态时钟实战

目录 前言 一、关于Canvas技术 1、Canvas是什么 2、Canvas的属性及渲染特性 二、Canvas动态多时区展示 1、新建html页面 2、创建Canvas对象 3、绘制所有的时钟 总结 前言 出差旅行相信大家一定会住酒店&#xff0c;大家在酒店的前台进行预订的时候&#xff0c;是不是都…

简单实现Anaconda/Miniforge虚拟环境的克隆和迁移

简单实现Anaconda/Miniforge虚拟环境的克隆和迁移 一、问题描述一、方式一&#xff1a;使用命令克隆二、方式二&#xff1a;直接复制粘贴 欢迎学习交流&#xff01; 邮箱&#xff1a; z…1…6.com 网站&#xff1a; https://zephyrhours.github.io/ 一、问题描述 使用Anaconda…

【Node-RED 4.0.2】4.0版本新增特性(官方版)

二、重要功能 *1.时间戳格式改进 过去&#xff0c;node-red 只提供了 最原始的 timestamp 的格式&#xff08;1970-01-01 ~ now&#xff09; 但是现在&#xff0c;额外增加了 2 种格式&#xff1a; ISO 8601 -A COMMON FORMAT&#xff08;YYYY-MM-DDTHH:mm:ss:sssZ&#xff…

Cocos制作抖音小游戏接入侧边栏复访接口实例

本篇文章主要讲解&#xff0c;使用cocos接入抖音小游戏侧边栏接口的实例教程。 日期&#xff1a;2024年7月1日 作者&#xff1a;任聪聪 教程实例&#xff1a;https://download.csdn.net/download/hj960511/89509196 下载后可直接导入运行 上传游戏后抖音预审不通过 注意&#x…