当前位置: 首页 > article >正文

Python 3.12 Key Words - 01 - Summary

Python 3.12 Key Words引言什么是关键字在 Python 中关键字Keyword是语言语法的一部分是 Python 语言中预先保留的具有特殊含义的标识符。它们像建筑中的钢筋水泥构成了程序的基本结构。这些单词是 Python 语法的一部分用于表示程序的结构、控制流程、逻辑运算等不能用作变量名、函数名、类名或其他自定义标识符否则会导致语法错误。Python 3.12 共有35 个硬关键字和4 个软关键字。硬关键字在任何上下文中都是保留的而软关键字仅在特定语法位置具有特殊含义其他位置仍可作为标识符。本文将系统讲解每个关键字的用途、示例、注意事项以及软关键字的特别之处。主要特点固定含义每个关键字都有特定的语法功能不能被重新定义或赋值除非使用软关键字在特定上下文外。区分大小写所有关键字都是小写的除了True、False、None三个常量首字母大写。数量有限Python 3.12 共有35 个硬关键字和4 个软关键字。语法保留尝试使用关键字作为变量名会引发SyntaxError。关键字的分类类别示例控制流if,elif,else,for,while,break,continue异常处理try,except,finally,raise,assert函数与类def,return,lambda,class,yield逻辑/成员/身份运算and,or,not,in,is导入与别名import,from,as作用域global,nonlocal资源管理with,del异步编程async,await常量True,False,None软关键字match,case,_,type仅在特定上下文中具有特殊含义第一部分硬关键字35 个一、常量与特殊值1.True/False作用布尔类型的两个值True表示真False表示假。注意它们首字母大写在 Python 中True和False是bool类型的单例对象。示例is_python_funTrueis_java_funFalseprint(is_python_funandnotis_java_fun)# True2.None作用表示“空”或“无”的对象常用于表示缺失值、函数默认返回值等。注意None不是空字符串、空列表或 0它是一个单独的类型NoneType。示例deffunc():passprint(func())# None二、逻辑与关系运算3.and作用逻辑与运算符短路求值当左侧为False时直接返回左侧值否则返回右侧值。示例a,b5,0print(a0andb0)# False4.or作用逻辑或运算符短路求值当左侧为True时直接返回左侧值否则返回右侧值。示例nameinput(Name: )orAnonymous5.not作用逻辑非运算符返回布尔值的相反值。示例is_readyFalseifnotis_ready:print(Please wait.)6.in作用成员测试判断元素是否存在于序列、映射或集合中。示例items[1,2,3]print(2initems)# True7.is作用身份比较判断两个变量是否指向同一个对象比较内存地址。注意与不同is比较身份比较值。示例a[1,2];b[1,2]print(aisb)# Falseprint(ab)# True三、条件与循环控制8.if作用条件判断的入口根据表达式真假决定是否执行后续代码块。示例age18ifage18:print(Adult)9.elif作用else if的缩写用于多分支条件判断。示例score85ifscore90:gradeAelifscore80:gradeB10.else作用与if、for、while、try配合当条件不满足或循环正常结束未 break时执行。示例foriinrange(3):passelse:print(Loop finished without break)11.for作用迭代循环遍历可迭代对象列表、元组、字符串等。示例foriinrange(5):print(i)12.while作用条件循环当条件为真时重复执行代码块。示例n0whilen5:print(n)n113.break作用立即终止当前循环for或while跳出循环体。示例foriinrange(10):ifi5:breakprint(i)# 0 1 2 3 414.continue作用跳过本次循环剩余语句立即进入下一次迭代。示例foriinrange(5):ifi%20:continueprint(i)# 1 3四、函数与类定义15.def作用定义函数或方法。示例defadd(a,b):returnab16.return作用从函数中返回一个值并结束函数执行。没有return的函数返回None。示例defsquare(x):returnx*x17.lambda作用创建匿名函数没有名字的内联函数通常用于简单操作。示例squarelambdax:x*xprint(square(5))# 2518.class作用定义类面向对象编程的基础。示例classDog:defbark(self):print(Woof!)五、异常处理19.try作用标记可能引发异常的代码块与except、finally配合使用。示例try:x1/0exceptZeroDivisionError:print(Cannot divide by zero)20.except作用捕获指定类型的异常并执行对应的处理代码。示例如上。21.finally作用无论是否发生异常都会执行的清理代码块例如关闭文件、释放锁。示例try:fileopen(data.txt)finally:file.close()22.raise作用主动抛出异常可以抛出自定义异常或内置异常。示例defset_age(age):ifage0:raiseValueError(Age cannot be negative)returnage23.assert作用断言条件为假时抛出AssertionError用于调试和验证不变量。注意在优化模式-O下assert会被忽略。示例assert225,Math is broken六、导入与别名24.import作用导入模块或包中的成员。示例importmathfromosimportpath25.from作用与import配合指定从哪个模块导入可以导入部分成员。示例如上。26.as作用为导入的模块、异常或上下文管理器起别名简化名称或避免冲突。示例importnumpyasnp七、作用域控制27.global作用在函数内部声明变量为全局作用域允许修改全局变量。示例count0defincrement():globalcount count128.nonlocal作用在嵌套函数中声明变量来自外层非全局作用域用于修改闭包中的变量。示例defouter():x0definner():nonlocalx x1returnxreturninner八、资源管理29.with作用上下文管理器自动管理资源如文件、锁、数据库连接确保正确释放。示例withopen(file.txt,r)asf:contentf.read()# 文件自动关闭30.del作用删除变量、属性或容器中的元素减少引用计数但不会强制立即销毁对象由垃圾回收决定。示例lst[1,2,3]dellst[1]# 删除第二个元素dellst# 删除变量名九、生成器与占位31.yield作用在函数中使用使函数成为生成器每次yield返回一个值并暂停状态下次next()继续执行。示例defcount_up_to(n):i0whilein:yieldi i132.pass作用空语句什么都不做用作语法占位符例如在空函数、空类中。示例defplaceholder():pass十、异步编程33.async作用定义异步函数协程或异步上下文管理器、异步迭代器。示例asyncdeffetch_data():awaitasyncio.sleep(1)returndata34.await作用等待异步任务完成只能在async函数中使用。示例如上。第二部分软关键字4 个软关键字Soft Keywords是 Python 3.10 之后引入的概念。它们在特定语法位置具有特殊含义其他位置仍可作为普通标识符。这一设计保证了向后兼容性允许新语法引入而不破坏旧代码。1.match作用启动结构模式匹配Pattern Matching类似于其他语言中的switch-case但功能更强大。注意仅在match语句开头作为关键字其他地方可作为变量名。示例defdescribe(value):matchvalue:case0:returnzerocase1:returnonecase_:returnother2.case作用在match语句中定义匹配分支每个分支可以匹配字面量、类型、解构等模式。示例如上。3._作用在match语句中作为通配符模式匹配任何值但不绑定变量。在其他上下文中它只是一个普通标识符通常用作“不关心”的变量名例如循环变量。示例for_inrange(5):print(Hello)4.type作用PEP 695 引入用于定义类型别名Type Alias。例如type Point tuple[float, float]。在非此上下文中type仍然是内置函数返回对象的类型。示例typePointtuple[float,float]# 定义类型别名p:Point(3.0,4.0)print(type(p))# 调用内置 type 函数返回 class tuple第三部分 总结1. 关键字与保留字的关系硬关键字保留字绝对不能用作标识符。软关键字 只在特定上下文保留其他位置可以自由使用。例如你可以写match 123只要后面不跟在match语句中。2. 为什么需要软关键字向后兼容例如match在 3.10 之前可能被用作变量名如果直接设为硬关键字会破坏大量现有代码。软关键字完美解决了这个问题。语言平滑演进type原本是内置函数现在也能作为类型别名语句但旧代码中的type(obj)依然有效。3. 关键字的实现Python 解释器CPython的词法分析器在扫描源代码时会将标识符与硬关键字列表匹配若匹配则生成对应的 token如IF、FOR。软关键字的判断则依赖于语法解析器的上下文。5. 关键字与内置函数的区别关键字是语法的一部分不能被覆盖。内置函数如print,len只是预定义的函数可以被重新赋值但不推荐。6. 如何查看所有关键字importkeywordprint(keyword.kwlist)# 硬关键字列表print(keyword.softkwlist)# 软关键字列表Python 3.97. 硬关键字 vs. 软关键字硬关键字在任何位置都不能作为标识符使用。软关键字仅在特定的语法上下文中被视为关键字例如match和case只在match语句中是关键字其他位置可以作为普通变量名。硬关键字35 个关键字作用False布尔假值常量None表示空值或缺失值的特殊对象True布尔真值常量and逻辑与运算符短路求值as为导入的模块、异常或上下文管理器起别名assert断言条件为假时引发AssertionErrorasync定义异步函数协程或异步上下文管理器await等待异步任务完成只能在async函数中使用break跳出当前循环for或whileclass定义类continue跳过本次循环剩余代码继续下一次迭代def定义函数或方法del删除变量、属性或容器中的元素elifif语句中的else if分支else条件不满足时执行的分支也可用于循环和异常处理except捕获异常与try配合finally无论是否发生异常都会执行的代码块与try配合for循环遍历可迭代对象from从模块中导入特定成员与import配合global声明变量为全局作用域if条件判断import导入模块或模块中的成员in成员测试是否在序列、映射或集合中也用于for循环is身份比较判断两个对象是否为同一对象lambda创建匿名函数nonlocal声明变量为嵌套函数的外层作用域变量not逻辑非运算符or逻辑或运算符短路求值pass空语句占位符raise抛出异常return从函数返回值try异常处理开始块while条件循环with上下文管理器自动管理资源如文件、锁yield从生成器函数中返回值并暂停函数状态软关键字4 个关键字作用_在match语句中作为通配符模式匹配任何值但不绑定变量在普通上下文中可作为标识符通常表示“不关心”的值case在match语句中定义匹配分支match用于结构模式匹配match语句的开始与case配合使用type用于定义类型别名PEP 695例如type Point tuple[float, float]在非此上下文中仍可作为普通标识符如type(obj)说明软关键字仅在特定的语法上下文中具有特殊含义其他位置可作为普通标识符使用。例如match和case只在match语句中才是关键字_只在match语句中作为通配符type只在type name ...语句中才是关键字。如果在学习过程中遇到问题欢迎在评论区留言讨论!

相关文章:

Python 3.12 Key Words - 01 - Summary

Python 3.12 Key Words:引言:什么是关键字? 在 Python 中,关键字(Keyword) 是语言语法的一部分,是 Python 语言中预先保留的具有特殊含义的标识符。它们像建筑中的钢筋水泥,构成了程…...

如何利用SQL存储过程处理大数据_利用分页批处理降低压力

...

Laravel Blade 中高效筛选并限制关联分类数据的实践指南

本文讲解如何在 Laravel 中避免在 Blade 模板中嵌套循环与字符串解析,转而使用数据库层的 WHERE FIND_IN_SET() 配合 limit() 实现精准、高效的数据筛选与分页控制。 本文讲解如何在 laravel 中避免在 blade 模板中嵌套循环与字符串解析,转而使用数…...

Redis怎样设计企业级备份策略_结合全量RDB与增量AOF实现多级数据保护

全量备份应选RDB;因其文件小、恢复快,适合作为每日基线备份,而AOF仅宜作为增量补丁,不可替代RDB承担全量角色。全量备份选 RDB 还是 AOF?得看恢复速度和磁盘压力RDB 是快照式备份,save 或 bgsave 生成的 du…...

HTML函数在超频CPU上更流畅吗_超频对HTML函数影响【技巧】

HTML函数不受CPU超频影响,其执行速度由浏览器引擎、事件循环和网络栈决定;超频仅提升Web Workers中计算密集型任务性能,却可能降低计时精度并暴露竞态问题。HTML函数根本不受CPU超频影响超频CPU不会让 document.getElementById、setTimeout 或…...

CSS 中实现同类型兄弟元素悬停联动效果(如所有红色行同时高亮)

本文介绍如何利用 css :has() 伪类实现“悬停任一同类元素时,所有同类型兄弟元素同步响应样式变化”,无需 javascript,纯 css 可控,适用于分组高亮等交互场景。 本文介绍如何利用 css :has() 伪类实现“悬停任一同类元素时&a…...

Angular 转 React 避坑指南:10个高频错误

一、为什么要写这篇文章做过 React 转 Angular 迁移的同学都知道——光看文档是不够的。文档告诉你 API 怎么用,但不会告诉你哪些"习惯性写法"在新框架里会悄悄出错,还不报错。本文来自真实迁移经历,整理了 6 类高频踩坑场景&#…...

从Overleaf回归本地:我为什么选择TeXLive+WinEdt搭建更高效的LaTeX写作环境?

从Overleaf回归本地:为什么TeXLiveWinEdt能打造更高效的LaTeX工作流? 当你在深夜赶论文时突然遭遇Overleaf服务器崩溃,或是需要自定义某个冷门宏包却受限于在线环境权限,那种无力感足以让任何LaTeX用户重新思考工具链的选择。作为…...

LeagueAkari英雄联盟工具包:10个提升游戏体验的终极技巧

LeagueAkari英雄联盟工具包:10个提升游戏体验的终极技巧 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否厌倦了繁琐的英雄联…...

别再写一堆if了!Mybatis动态SQL的choose/when/otherwise标签,5分钟搞定多条件分支

告别if嵌套噩梦:MyBatis动态SQL的choose/when/otherwise实战指南 在电商后台开发中,我们经常遇到这样的场景:需要根据不同的订单状态或用户等级查询不同的数据。传统的做法是使用一连串的if标签,结果XML文件变得臃肿不堪&#xff…...

Vivado HLS实战避坑指南:从C代码到可用的IP核,我踩过的那些坑

Vivado HLS实战避坑指南:从C代码到可用的IP核,我踩过的那些坑 第一次用Vivado HLS把C代码变成FPGA上的IP核时,那种兴奋感至今难忘。但很快我就发现,从"能跑通Demo"到"做出稳定可用的IP"之间,横亘着…...

从SOT-23到SOT-963:手把手教你识别和选用那些长得像的SMD晶体管封装

从SOT-23到SOT-963:手把手教你识别和选用那些长得像的SMD晶体管封装 在物联网设备和小型化电子产品设计中,SMD晶体管封装的选择往往让人头疼。那些看似相同的微型封装,实际上在尺寸、引脚排列和散热性能上存在微妙差异。一位资深工程师曾告诉…...

别再死记硬背Next数组了!用‘最长相等前后缀’这个核心概念,5分钟彻底搞懂KMP

从几何视角彻底理解KMP算法:Next数组的本质是字符串的自相似性 每次看到KMP算法中那个神秘的Next数组,总有种面对黑盒的感觉——明明代码只有几行,背后的逻辑却像被施了魔法。今天我们不谈公式推导,换个视角用"最长相等前后缀…...

【代码】基于交替方向乘子法(admm)的微电网分布式低碳优化运行策略matlab-yalmip-cplex/gurobi

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...

如何解决多线图中线条颜色不渲染(仅标记和提示框显示颜色)的问题

多线图中线条显示为黑色而标记点和工具提示却正常显示设定颜色,通常是因第三方 css 或 javascript 库意外覆盖了图表库的样式或破坏了其渲染逻辑所致。 多线图中线条显示为黑色而标记点和工具提示却正常显示设定颜色,通常是因第三方 css 或 javascr…...

CSS如何消除图片下方多余间隙_设置display-block改变盒模型

图片下方空白源于img默认inline导致的基线对齐&#xff1b;display:block最直接有效&#xff0c;vertical-align:middle等有兼容性与场景限制&#xff0c;font-size:0或line-height:0副作用大。图片下方空白是行内元素的基线对齐导致的默认情况下 <img> 是行内元素&#…...

自己做agent项目时,为什么工具和提示词写完之后总要重构再重构

最近有朋友来问我&#xff0c;他们团队做内部agent代理项目&#xff0c;工具写了十几个&#xff0c;能跑起来了&#xff0c;但后来想加权限没地方加&#xff0c;agent中断之后也不知道怎么恢复状态&#xff0c;最后只好停下来把工具全部重写了一遍&#xff01; 他们花了一个小…...

逆向YouTube Shorts接口:我是如何用Java和Protobuf搞定短视频列表解析的

逆向解析YouTube Shorts接口&#xff1a;Java与Protobuf实战指南 在移动应用逆向工程领域&#xff0c;Google系产品的接口分析向来以高复杂度著称。本文将分享如何突破层层技术障碍&#xff0c;从零开始解析YouTube Shorts短视频列表接口的全过程。不同于常见的API调用教程&…...

SAP财务凭证增强实战:利用BADI_ACC_DOCUMENT和CI_COBL为BAPI_ACC_DOCUMENT_POST扩展自定义字段

SAP财务凭证增强实战&#xff1a;从需求分析到稳定部署的全流程设计 在SAP标准财务模块实施过程中&#xff0c;业务需求的个性化往往超出标准功能的覆盖范围。当企业需要为会计凭证添加反记账标识、自定义记账码等特殊字段时&#xff0c;标准的BAPI_ACC_DOCUMENT_POST接口就显得…...

Akagi麻将AI助手:30天从新手到高手的终极免费指南

Akagi麻将AI助手&#xff1a;30天从新手到高手的终极免费指南 【免费下载链接】Akagi 支持雀魂、天鳳、麻雀一番街、天月麻將&#xff0c;能夠使用自定義的AI模型實時分析對局並給出建議&#xff0c;內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuki,…...

SpringBoot+Vue教务管理系统源码+论文

代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 分享万套开题报告任务书答辩PPT模板 作者完整代码目录供你选择&#xff1a; 《SpringBoot网站项目》1800套 《SSM网站项目》1500套 《小程序项目》1600套 《APP项目》1500套 《Python网站项目》…...

如何配置Oracle 19c Data Pump目录_数据泵导入导出的环境准备

必须先创建DIRECTORY对象并授权&#xff1a;CREATE OR REPLACE DIRECTORY dpump_dir AS /u01/app/oracle/dpdump; GRANT READ,WRITE ON DIRECTORY dpump_dir TO scott; 且Oracle进程需有目录读写权限。怎么创建 Data Pump 目录对象&#xff08;DIRECTORY&#xff09;oracle dat…...

SpringBoot项目整合FISCO BCOS 2.9.1 SDK:从WeBASE-Front导出合约到Java调用的保姆级避坑指南

SpringBoot项目整合FISCO BCOS 2.9.1 SDK实战&#xff1a;从合约导出到Java调用的全流程解析 当Java开发者首次尝试将区块链能力整合到现有SpringBoot项目中时&#xff0c;往往会遇到一系列意料之外的挑战。本文将以一个典型的企业级资产管理系统为背景&#xff0c;详细拆解从W…...

C语言宏定义续行符踩坑实录:手把手教你解决‘backslash and newline separated by space’警告

C语言宏定义续行符的隐秘陷阱&#xff1a;从警告解析到工程级解决方案 第一次在CLion里看到backslash and newline separated by space这个警告时&#xff0c;我盯着那个无辜的反斜杠看了足足三分钟。作为一个刚接触C语言宏编程的开发者&#xff0c;这个看似简单的格式问题背后…...

UniApp实战:精准控制微信小程序iOS端滚动行为,告别橡皮筋回弹

1. 为什么iOS橡皮筋效果让人又爱又恨 第一次用UniApp开发微信小程序时&#xff0c;我就被iOS这个特性整懵了。明明在安卓机上运行正常的页面&#xff0c;到了iPhone上就变成了"橡皮泥"——随便一拉就能扯出大片空白。后来才知道&#xff0c;这正是iOS引以为傲的橡皮筋…...

HarmonyOS布局避坑指南:为什么你的Column和Row总对不齐?

HarmonyOS布局避坑指南&#xff1a;为什么你的Column和Row总对不齐&#xff1f; 在HarmonyOS应用开发中&#xff0c;布局是构建用户界面的基础。然而&#xff0c;许多开发者在实际项目中常常遇到Column和Row组件对不齐的问题&#xff0c;导致界面显示效果不尽如人意。本文将深入…...

别再只盯着K-Means了!用sklearn的轮廓系数(silhouette_score)帮你选出最佳聚类算法

用轮廓系数为聚类算法打分&#xff1a;从K-Means到DBSCAN的科学选择指南 当面对一堆未标注的数据时&#xff0c;很多人的第一反应是直接套用K-Means算法——这就像拿到食材只会做炒饭一样。但真实世界的数据分布千奇百怪&#xff0c;有的像瑞士奶酪布满空洞&#xff08;适合DBS…...

JavaScript 中的 setTimeout 是否依赖系统时钟?

settimeout 的延迟计时基于浏览器内部的高精度单调时钟&#xff08;如 performance.now() 所依赖的机制&#xff09;&#xff0c;而非操作系统本地时间&#xff1b;因此修改系统时间不会影响其倒计时行为&#xff0c;但页面休眠、cpu 节流或事件循环阻塞会导致实际触发延迟。 …...

科研党福音:Zotero 6.0 内置PDF阅读器+翻译插件,打造一站式文献阅读与笔记系统

Zotero 6.0 科研工作流革命&#xff1a;内置PDF生态与智能翻译实战指南 当你在深夜赶论文时&#xff0c;是否经历过这样的场景&#xff1a;PDF阅读器卡顿崩溃、翻译软件弹窗遮挡关键图表、文献批注散落在五个不同平台&#xff1f;Zotero 6.0的这次迭代&#xff0c;用原生PDF阅读…...

CTF新手必看:从猪圈密码到JSFuck,这10种古典密码的识别与破解实战

CTF密码学实战&#xff1a;10种古典密码的快速识别与高效破解指南 第一次参加CTF比赛时&#xff0c;我盯着那道Crypto题目发呆了半小时——密文由一堆点和横线组成&#xff0c;隐约像是某种编码&#xff0c;但完全无从下手。直到队友提醒"试试摩斯密码"&#xff0c;三…...