python4(条件语句、循环语句、推导式)
📅 2026/7/25 9:18:13
👁️ 次浏览
条件语句、循环语句与推导式Python 的流程控制说白了就三件事判断走哪条路、重复干多少遍、快速生成批量造数据。这就像开车——条件语句是红绿灯循环语句是绕着环岛转圈推导式则是自动化的流水线打包机。咱们一样一样拆。一、条件语句让代码学会“看人下菜碟”1. 三种基本形态条件语句的核心就是if后面跟着一个“真/假”表达式真就执行假就跳过或者走else。单分支if 条件: 做某事双分支if 条件: 做A else: 做B多分支if 条件1: ... elif 条件2: ... elif 条件3: ... else: ...注意一个关键特性每个条件语句只会命中第一个满足的条件后面的elif和else就都不看了。这跟按顺序问问题一样问到了“是”就不再往下问。num5ifnum0:print(a)# 输出 aelifnum1:print(b)# 不会执行因为上面已经满足了P.S.if后面的条件不一定是布尔值Python 会自动把任何值转成布尔——0、None、空字符串、空列表、空字典等都是False其他都是True。所以if []:永远不会进if hello:一定会进。2. 三元表达式一行搞定简单判断如果你只是根据条件给变量赋个值写四行if-else太啰嗦可以用三元表达式result牛逼ifscore90else优秀ifscore80else可以ifscore60else同志仍需努力这玩意儿是表达式有返回值不是代码块所以可以嵌在 f-string 里print(f老师说我{牛逼ifscore90else优秀ifscore80else可以ifscore60else同志仍需努力})不过实话实说嵌套多了可读性会下降适可而止。3. 嵌套与“奇葩”写法条件语句可以套娃——if里面再写if。PDF 里那个“包租婆”的例子就是典型的嵌套判断。另外Python 还支持一种“连环三元”的写法PDF 里有一长串但那个纯粹是炫技生产环境千万别这么写维护的人会想打你。二、循环语句让代码学会“重复劳动”循环分两种while和for一个靠条件一个靠遍历。1.while条件型循环只要条件为真就一直执行。最常见的是while True死循环配合break手动退出。count0whileTrue:print(count)count1ifcount5:breakwhile...else的坑else会在循环正常结束没有被break时执行。如果循环被break打断else就不执行。这一点容易忘但用好了可以省一个标志变量。2.for遍历型循环for可以遍历任何可迭代对象字符串、列表、元组、字典、集合、range 等。foriinabc:print(i)# a b cforkeyin{one:1,two:2}:# 遍历的是键print(key)for...else的逻辑和while...else一样——正常走完才执行else被break则跳过。3. 循环控制break和continuebreak终止整个循环只影响它所在的那一层外层不受影响。continue跳过本次直接进入下一次迭代。foriinrange(3):forjinrange(3):print(hello)break# 只跳出内层循环所以外层循环3次输出3个hello4. 两个实用内置工具range和enumeraterange(start, stop, step)生成一个不可变的整数序列不占内存只存三个参数适合循环计数。enumerate(iterable, start0)在遍历时同时拿到索引和值返回一个个元组。foridx,valinenumerate([a,b,c],start1):print(idx,val)# 1 a, 2 b, 3 c三、推导式一行代码搞定批量生成推导式是 Python 特有的“语法糖”能把好几行的for循环压缩成一行而且速度更快底层优化过。1. 列表推导式 —— 最常用基本结构[表达式 for 变量 in 可迭代对象 if 条件]squares[x**2forxinrange(10)]# [0,1,4,9,...81]even_squares[x**2forxinrange(10)ifx%20]还可以两层循环相当于嵌套forresult[(x,y)forxin[1,2,3]foryin[3,1,4]ifx!y]初始表达式甚至可以又是一个列表推导式比如转置矩阵——那个有点烧脑但看懂了会觉得很优雅。2. 字典推导式 和 集合推导式把方括号换成花括号写法一样。dic{x:x**2forxinrange(4)}# {0:0, 1:1, 2:4, 3:9}set1{x**2forxinrange(4)}# {0,1,4,9}集合自动去重集合推导式天然去重很适合做过滤。四、综合实战大家可以动手敲一敲下面的这道例题试着做一下用random.randint(0,2)生成电脑出拳。用字典映射数字到“石头/剪刀/布”。判断输赢的逻辑player - computer等于-1或2时玩家赢因为 0石头、1剪刀、2布 是一个循环相克的关系。加了输入校验while循环保证输入在 0~2 之间。三局两胜制用for循环跑三局统计双方胜局数。最后询问是否继续用while确保输入只有q或c。这个例子把条件、循环、推导式虽然没显式用都串起来了是很好的练手项目。五、补充几个边角料random模块除了randint还有random()0~1浮点、choice随机选一个、sample随机选多个不重复、shuffle打乱顺序、seed固定随机种子方便复现。pass占位符什么也不做只用来占位置比如写个空函数或空循环体等以后补代码。chr和ord字符和 Unicode 码位互转PDF 里用在判断输入是否为大写Q或小写q上。收尾条件语句、循环语句、推导式这三块是 Python 里最基础的“动词”——你写的每一段代码都离不开它们。别死记语法多敲几遍石头剪刀布把if、while、for、break、continue的手感练出来后面学函数、类、装饰器就顺了。如果非要说个优先级if和for是基本功列表推导式是进阶亮点。先把前者玩透后者自然水到渠成。下图为本文知识点的思维导图示意有任何疑问随时来聊。编码愉快
1. μDMA控制器核心概念与设计思路拆解 直接内存访问(DMA)技术,对于任何一个在资源受限的嵌入式系统里摸爬滚打过的工程师来说,都像是一把双刃剑。用好了,系统性能飞升,CPU被解放出来处理更复杂的逻辑&…
📅 2026/7/26 1:24:28
1. OpenCode与OMO:当开源AI Agent遇上多Agent编排引擎 第一次在终端里敲下 opencode --install-omo 命令时,我正被一个跨语言代码生成项目折磨得焦头烂额。传统单Agent架构就像试图用瑞士军刀砍树——工具虽全但效率感人。直到OMO的模块化工作流将我的…
📅 2026/7/25 11:09:24
1. 项目概述与核心价值对于从事工业控制、汽车电子或者高可靠性嵌入式系统开发的工程师来说,拿到一块功能强大的开发板,第一步往往不是急着写代码,而是先把它“摸透”。这里的“摸透”,指的就是彻底理解它的硬件架构、接口资源以及…
📅 2026/7/24 22:26:19
1. 问题现象与背景解析作为一名长期使用Windows系统的技术博主,我最近在全新安装Win11的笔记本电脑上遇到了一个相当恼人的键盘功能异常问题。具体表现为:F1-F12键默认变成了功能键(如调节亮度、音量等),而原本的功能键…
📅 2026/7/26 3:01:06
1. 为什么选择Docker进行项目部署?第一次接触Docker是在2016年接手一个微服务项目时。当时团队里每个开发者的本地环境配置都不一致,导致"在我机器上能跑"的问题频发。直到我们把所有服务都容器化后,这个问题才彻底解决。现在Docke…
📅 2026/7/26 3:01:06
1. 问题现象与背景解析最近在Oracle数据库运维过程中,遇到了一个典型的报错:"ORA-20001: Latest xml inventory is not loaded into table"。这个错误通常发生在使用Oracle Inventory管理功能时,系统无法正确加载最新的XML清单文件…
📅 2026/7/26 3:01:06
1. 错误背景与现象解析 最近在Oracle数据库维护过程中,遇到了一个典型的XML库存同步问题:系统抛出"ORA-20001: Latest xml inventory is not loaded into table"错误。这个错误通常发生在使用Oracle XML DB功能进行数据交互的场景中࿰…
📅 2026/7/26 3:01:06
1. 消息队列基础概念解析消息队列(Message Queue)作为进程间通信(IPC)的核心机制之一,在Linux/Unix系统中扮演着数据中转站的角色。它的工作原理类似于现实生活中的邮局系统——发送方将数据打包成特定格式的消息投递到…
📅 2026/7/26 3:01:06
1. 项目背景与核心价值蔬菜识别系统作为计算机视觉在农业领域的典型应用,本质上是一个细粒度图像分类问题。不同于常规物体识别,蔬菜品类间往往具有高度相似的形态特征(如白菜与娃娃菜、青椒与彩椒),传统机器学习方法在…
📅 2026/7/26 3:00:06
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/26 0:00:06
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/26 0:00:06
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/26 0:00:06
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/26 0:00:06
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/26 0:00:06
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/26 0:00:06
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/25 7:09:18
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/25 17:09:47
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/25 5:09:14