Python进阶必修课:像搭积木一样玩转循环与数据容器
摘要刚学Python的时候很多人都会遇到一个很尴尬的问题代码能跑但是写得像流水账。比如要打印5次“我错了”就真的复制粘贴5行print。这种写法不仅看着累以后要改个字还得改5次。其实Python早就给我们准备好了“偷懒”的工具——循环和数据容器。这篇笔记就用一个运维/开发同学的日常视角聊聊怎么用while、for和各种容器字符串、列表把重复劳动交给电脑让自己早点下班。引言现在的业务场景里不管是写自动化脚本还是处理日志、批量操作用户数据都离不开两样东西一是让程序反复干活的循环二是能一把抓一堆数据的容器。比如服务器监控要一直跑循环日志文件一行行读出来存到列表里容器。搞懂这两个你写的就不叫脚本了叫工具。循环语句让电脑替你干重复的活什么是循环说白了循环就是让电脑“照着模板反复做”。比如老师说“把这个词抄10遍”你脑子里知道这是一件事只是重复10次。程序也一样。生活中的例子抄单词10遍 → 我知道次数用for往杯子里倒水直到满 → 我不知道倒几次看情况用while如果不用循环代码是这样的print(今天是我不对)print(今天是我不对)print(今天是我不对)# ... 抄到第10遍手都酸了用了循环世界都清净了# 抄10遍foriinrange(10):print(今天是我不对)while循环不知道要跑多久的时候用它while的核心逻辑很简单只要条件成立就一直干。执行逻辑先看条件条件为真干活干完活回来再看条件条件为假收工基础写法# 从1数到5i1whilei5:print(f这是第{i}次)i1# 别忘了这一步不然就死循环了print(数完了)实际场景一模拟用户登录真实场景里我们不知道用户第几次能输对密码所以用while。# 模拟登录直到密码正确whileTrue:pwdinput(请输入密码)ifpwdadmin:print(密码正确登录成功)break# 输对了就跳出循环else:print(密码错误再试一次)代码解读while True代表一直循环。如果输对了用break强制结束不然它就一直问你要密码。这种方式非常适合“等待某个状态发生”的场景比如等服务器启动、等文件出现。实际场景二定时任务提醒比如写个脚本每隔3秒提醒女朋友别生气慎用可能会被拉黑。importtimewhileTrue:print(别生气了我错了)time.sleep(3)# 程序暂停3秒代码解读time.sleep(3)是让CPU歇会儿不然你的电脑风扇会狂转。这种“死循环”常用于监听消息、监控系统状态。for循环知道要干几次或者有一堆东西要挨个处理for循环在Python里有个外号叫“遍历神器”。它最适合干两件事干固定次数的活for i in range(10)。把一堆数据挨个拿出来处理遍历列表、字符串。基础写法# 遍历字符串forchinitheima:print(ch)# 输出i t h e i m arange函数的用法range就是帮你生成一个数字队列。range(5)- 0,1,2,3,4 注意不含5range(1, 5)- 1,2,3,4range(1, 10, 2)- 1,3,5,7,9 步长为2实际场景三批量处理用户数据假设我们有10个用户ID要给每个人发优惠券。# 模拟给前5个用户发券foruser_idinrange(1,6):print(f正在给用户{user_id}发放优惠券...)print(发券完毕)实际场景四九九乘法表经典练手这个例子能很好地理解双层循环。外层控制行内层控制列。# 打印九九乘法表forrowinrange(1,10):forcolinrange(1,row1):print(f{col}×{row}{col*row},end\t)print()# 打完一行换一行代码解读外层row决定现在是第几行。内层col决定这一行有几列。比如第3行就有3列。end\t是为了不让print自动换行用制表符隔开。break和continue循环的刹车和跳板break直接熄火整个循环结束。continue本次算了直接进入下一轮。场景寻找第一个能被7整除的数i1whileTrue:ifi%70:print(f找到了{i})break# 找到就走人不用再看后面的了i1场景跳过讨厌的数字打印1到10但是不想看到5。foriinrange(1,11):ifi5:continue# 跳过5后面的print这次就不执行了print(i)数据容器装数据的篮子字符串文本处理的万金油字符串其实就是一串字符。在Python里它是最常用的容器之一。常用操作去掉两边空格处理用户输入必用usernameinput(用户名)# 用户不小心输了空格usernameusername.strip()# 把头尾空格干掉print(f欢迎{username})大小写转换验证码校验codeAbC3user_inputaBc3# 统一转小写再比较防止用户大写小写混着输ifcode.lower()user_input.lower():print(验证码正确)查找和替换日志分析常用logERROR: File not found# 看看日志里有没有ERRORiflog.find(ERROR)!-1:print(发现错误日志)# 把敏感词替换掉text这傻逼真烦safe_texttext.replace(傻逼,**)print(safe_text)切片截取想要的部分字符串就像一根香肠切片就是切香肠。path/user/home/file.txt# 只要文件名filenamepath[-8:]# 取最后8个字符print(filename)# 反转字符串有时候挺有用wordPythonprint(word[::-1])# nohtyP列表最灵活的数据仓库如果你有一堆同类型的东西比如全班同学的名字用变量一个个存太傻了用列表。定义和基本操作# 定义列表names[张三,李四,王五]print(names[0])# 张三索引从0开始# 增加names.append(赵六)# 在末尾加names.insert(1,田七)# 插到第二个位置# 删除names.remove(李四)# 移除指定元素delnames[0]# 删除第一个# 修改names[0]张三丰# 查询if王五innames:print(王五在名单里)实际场景一黑名单IP拦截写一个简单的防火墙逻辑检查来访IP是否在黑名单里。black_ips[192.168.1.100,10.0.0.5,172.16.0.8]visit_ip10.0.0.5ifvisit_ipinblack_ips:print(fIP{visit_ip}已被封禁拒绝访问)else:print(fIP{visit_ip}允许访问。)实际场景二解析日志文件假设我们有一段Nginx日志想提取出所有的IP地址。logs 192.168.1.1 - - [GET] 10.0.0.2 - - [POST] 192.168.1.1 - - [GET] ip_list[]# 按行分割forlineinlogs.strip().split(\n):# 按空格分割取第一个元素就是IPipline.split( )[0]ip_list.append(ip)print(f提取出的IP列表{ip_list})# 统计访问次数print(f192.168.1.1 访问了{ip_list.count(192.168.1.1)}次)列表的遍历heroes[貂蝉,大乔,小乔]forheroinheroes:print(f正在加载英雄{hero})列表嵌套处理更复杂的数据结构比如年级-班级-学生。# 三层列表嵌套年级 - 班级 - 学生school[[张三,李四],# 一班[王五,赵六],# 二班[田七,钱八]# 三班]# 找二班的王五print(school[1][0])# 先拿第二个班索引1再拿班里第一个人索引0# 遍历全校学生forclass_roominschool:forstudentinclass_room:print(f学生姓名{student})QA环节Q什么时候用while什么时候用forA简单记数得清次数用for比如循环10次、遍历一个列表数不清次数用while比如一直等用户输入、一直监控某个端口直到它打开。Q字符串和列表有什么区别A最大的区别是字符串一旦定下来就不能改不可变比如你把字符串里的’a’换成’b’其实是生成了一个新的字符串。而列表是可以随便改的可变可以直接在原来的列表上加人减人。Qbreak和continue在多层循环里怎么生效A它们只管自己这一层循环。比如你在内层循环写了break只会跳出内层循环外层循环还会继续跑。如果想一下子全停掉可能需要配合标志位或者把循环封装成函数用return。Qrange(5)为什么是0-4A这是编程界的传统艺能了叫“零基索引”。习惯了就好主要是为了方便计算机底层计算偏移量。记住一句话含头不含尾。总结今天我们聊了Python里的两个核心概念循环和数据容器。循环while/for解决了“重复劳动”的问题让我们能用几行代码搞定成千上万次的运算。数据容器字符串、列表解决了“数据打包”的问题让我们能优雅地管理一堆杂乱的信息。在实际工作中这两者往往是组合使用的。比如用while一直盯着日志文件用for循环逐行读取内容再用字符串的方法提取IP最后放进列表里做统计。把这些基础打牢后面学爬虫、Web开发或者数据分析都会轻松很多。

相关新闻

VMware安装蓝屏与注册表错误:从虚拟化原理到彻底修复指南

VMware安装蓝屏与注册表错误:从虚拟化原理到彻底修复指南

1. 项目概述:当VMware遇上注册表与蓝屏如果你正在折腾虚拟机,尤其是VMware Workstation或者Player,那么“无法打开注册表项”和“一开虚拟机电脑就蓝屏重启”这两个拦路虎,你大概率迟早会碰上。这可不是什么小众问题,而…

2026/7/30 3:35:23 阅读更多 →
Unity动态河流与泥石流模拟:基于动态网格与着色器的程序化生成方案

Unity动态河流与泥石流模拟:基于动态网格与着色器的程序化生成方案

1. 项目概述:从静态水体到动态灾害的路径模拟在游戏开发、虚拟仿真和数字孪生项目中,河流与泥石流这类动态环境元素,往往是提升场景真实感与沉浸感的关键。传统做法可能是直接使用Unity的Terrain系统绘制静态水体,或者放置预制好的…

2026/7/30 3:35:23 阅读更多 →
Unity Recorder保姆级教程:录制透明背景序列帧与游戏视频

Unity Recorder保姆级教程:录制透明背景序列帧与游戏视频

1. 项目概述:为什么你需要一个“保姆级”的Unity Recorder教程?如果你正在用Unity开发游戏,无论是独立开发者还是团队中的一员,制作宣传视频、录制玩法演示、或者为UI和特效生成序列帧动画,都是绕不开的环节。你可能试…

2026/7/30 3:35:23 阅读更多 →

最新新闻

掌握这 6 个 LangGraph 核心概念,真正理解 AI Agent 工作流

掌握这 6 个 LangGraph 核心概念,真正理解 AI Agent 工作流

大多数人复制粘贴第一个教程,让它跑起来,然后一旦尝试修改任何东西就彻底卡住。原因就在这六个概念。 大多数人可以在十分钟内构建出自己的第一个 LangGraph agent。 它能运行。 然后他们改了一个地方。 他们添加了一个分支。graph 永远不会停止。或…

2026/7/30 3:44:27 阅读更多 →
什么是 Loop Engineering?它和 Harness Engineering 有什么不同?

什么是 Loop Engineering?它和 Harness Engineering 有什么不同?

AI 行业热衷于给旧模式重新命名。但这一次,确实发生了一些真正的变化。 一位 Forward Deployed Engineer 视角:企业在开始构建 loops 之前,实际需要什么。 你最近可能读到过类似这样的话: “You shouldn’t be prompting coding a…

2026/7/30 3:44:27 阅读更多 →
智能计算与图像分析国际会议投稿指南与技术趋势

智能计算与图像分析国际会议投稿指南与技术趋势

1. 会议背景与学术价值解析2026年第二届智能计算与图像分析国际学术会议(ICCIIA 2026)是由中北大学主办、中北大学软件学院承办的重要学术活动。作为计算机视觉与人工智能交叉领域的专业会议,其核心定位是为全球研究者搭建智能算法与图像处理技术的前沿交流平台。会…

2026/7/30 3:44:27 阅读更多 →
如何在3分钟内快速解锁Figma中文界面:免费高效的汉化插件终极指南

如何在3分钟内快速解锁Figma中文界面:免费高效的汉化插件终极指南

如何在3分钟内快速解锁Figma中文界面:免费高效的汉化插件终极指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 你是否曾经因为Figma的英文界面而感到困扰?每天…

2026/7/30 3:44:27 阅读更多 →
小米11无线ADB调试全攻略:告别数据线,提升Android开发效率

小米11无线ADB调试全攻略:告别数据线,提升Android开发效率

1. 为什么需要Wi-Fi连接ADB?如果你是一名Android开发者,或者是一个喜欢折腾手机、搞搞自动化脚本的极客,那么对ADB(Android Debug Bridge)一定不会陌生。这根数据线,可以说是连接电脑和Android设备最直接的…

2026/7/30 3:44:27 阅读更多 →
如何在3分钟内完成BetterNCM安装器部署:新手终极指南

如何在3分钟内完成BetterNCM安装器部署:新手终极指南

如何在3分钟内完成BetterNCM安装器部署:新手终极指南 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件安装的复杂步骤而烦恼吗?BetterNCM安…

2026/7/30 3:43:27 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻