首页 / 资讯中心 / 文章详情

68页Python基础语法合集:变量、字符串、列表与元组核心要点详解

68页Python基础语法合集:变量、字符串、列表与元组核心要点详解 ★ FEATURED ARTICLE
简介68页Python基础语法合集是一份面向零基础入门者与有编程经验但需要快速切换至Python的读者的语法精讲资料帮助建立扎实的语法主干。内容从标识符、保留字、缩进与多行语句开始系统讲解变量赋值、五种标准数据类型及内建转换函数并延伸至流程控制、函数定义、模块导入等常用语法每个知识点都配有可运行的示例代码。资源包共1个文件类型为PDF压缩包大小约1.42MB便于下载后离线阅读或打印对照学习。已有2048人学习浏览适合自学入门、课堂辅助与日常速查。通过这68页读者能掌握Python语法核心理解缩进式代码块、面向对象基础与输入输出方式为后续数据分析、Web开发或自动化脚本等方向打下语言基础。1. 一份68页的python基础语法合集值得花两小时翻完先做个情景假设你刚装好Python对着命令行里的提示符想写点东西却发现连字符串拼接和列表切片都要现场搜。这份68页的python基础语法合集就是把变量、数据类型、字符串、列表、元组这些最常用的语法按主题归拢在一起每个知识点配一段示例代码。它不是从原理讲到生态的厚教材更像一份语法地图先讲标识符和保留字再逐个拆解Numbers、String、List、Tuple四类内置类型配合内置函数表与方法表适合做入门通读也适合写代码卡住时翻出来查。对零基础初学者它是能从头跟到尾的入门读物对写过其他语言的开发者它最大的价值是把Python与常见语言不同的语法边界一次性说清。2. 变量与数据类型从赋值机制到类型转换的边界PDF第二部分的核心内容围绕一个和多数语言不同的设定展开Python里变量不需要声明类型但必须先赋值才会被创建。这一条规则决定了后面所有类型操作的思路也解释了为什么访问未赋值变量会直接抛NameError。2.1 赋值机制先赋值再使用多变量同时赋值在Python交互式环境里执行以下代码counter 100 # 整型变量 miles 1000.0 # 浮点型变量 name demo # 字符串变量 a b c 1 # 三个变量同时赋值为1 a, b, c 1, 2, python # 按位置分别赋值逻辑说明Python的是引用绑定把右边的对象绑定到左边的名字上所以变量必须先赋值才存在。两种多变量赋值的语义不同a b c 1是链式赋值三个名字指向同一个整数对象a, b, c 1, 2, python是元组拆包右边先打包成元组再按位置展开。日常写交换变量时直接用 a, b b, a 即可不需要第三个临时变量这是拆包赋值的高频用法。参数说明变量名必须符合标识符规则由字母、数字、下划线组成不能以数字开头且区分大小写。如果报SyntaxError且定位在变量名优先检查是不是以数字开头或与保留字重名。Python 2里print是语句Python 3里是函数这份PDF里的print(x)写法在现在的环境直接照用即可。del counter # 删除名字与整数对象的绑定关系del删除的是绑定而不是“变量本身”。Python的垃圾回收机制会在引用计数归零时自动回收对象日常脚本很少主动用del但处理大对象、想及时释放内存时会用到。PDF里也提到del语句可以用于删除列表项但作用范围是同一个解除名字与对象的联系。2.2 数字类型int、float、complex与转换函数表PDF指出Numbers是不可改变的数据类型当类型被改变时会赋值给一个新的对象。这句话的实际含义是对数字做运算不会修改原对象而是生成新对象再重新绑定。int用于计数和索引float用于连续量计算complex用于复数场景。PDF里提到的long类型是Python 2的写法Python 3中long已经与int合并看到以L结尾的字面量按int处理即可。类型转换是这本手册里最值得背下来的部分下面是按参数特征分组后的转换函数表转换函数作用典型调用int(x [, base])转整数可带进制基数int(ff, 16) 得到 255float(x)转浮点数float(3.14) 得到 3.14complex(real [, imag])创建复数complex(1, 2) 得到 12jstr(x) / repr(x)转字符串 / 转表达式字符串str(123) 得到 123eval(str)计算字符串中的有效表达式eval(2 3) 得到 5tuple(s) / list(s)序列转元组 / 转列表list((1, 2)) 得到 [1, 2]chr(x) / ord(x)整数转字符 / 字符转整数chr(65) 得到 Aord(A) 得到 65hex(x) / oct(x)转十六进制 / 八进制字符串hex(255) 得到 0xff逻辑说明int(x, base)的base参数只对字符串转换有意义对浮点数传base会直接报错。eval()功能强但安全边界也大处理不可信输入时要小心。chr和ord是成对使用的处理ASCII码或Unicode码点时高频出现。int(3.14)会报ValueError因为int对字符串做的是解析不允许小数点float(3.14)可以正常解析。拿不准手里的值能不能转先确认源类型或者用try-except包一层。2.3 数学函数与随机数固定种子才能复现结果PDF给出的数学函数来自math模块使用前先import math。这些函数分三类绝对值类abs、fabs、舍入类ceil、floor、round、对数与幂类exp、log、log10、pow、sqrt外加小数拆分用的modf。ceil(4.1)得5floor(4.9)得4这在计算分页数或配额时很常用。round(x, n)接受小数点后位数参数但注意Python的round实现是银行家舍入round(2.675, 2)得到2.67而不是2.68因为2.675在二进制浮点里存的不是精确值。需要严格四舍五入时用Decimal模块而不是round这是PDF不会写的隐含坑。随机数函数常用于游戏抽奖、数据打乱和模拟实验函数作用典型调用choice(seq)随机选一个元素random.choice(range(10))randrange(start, stop, step)按步长取范围内的随机数random.randrange(0, 10, 2)random()生成[0,1)浮点数random.random()seed(x)固定随机种子random.seed(42)shuffle(lst)原地打乱列表random.shuffle(list1)uniform(x, y)生成[x,y]区间浮点数random.uniform(1, 10)逻辑说明seed(x)的意义在于让随机序列可复现对测试和对比实验很重要。我一般会在跑带随机性的脚本时固定种子比如打乱数据前先random.seed(2024)这样每次运行顺序一致复现问题才有后悔药。shuffle是原地操作直接修改传入的列表不返回新列表需要保留原列表就先copy()一份再打乱。三角函数部分同样来自math模块sin、cos、tan接收弧度值degrees()把弧度转角度radians()相反。写图形或地理距离计算时注意单位math.sin(math.pi / 2)结果是1.0因为pi/2弧度就是90度。3. 字符串操作索引、转义与格式化是三个高频战场字符串操作在Python里出现频率极高真正让人翻车的是索引、转义和格式化三件事。PDF把字符串单独列为一章编排顺序是截取规则、转义字符、运算与格式化、内建函数表。这一章按同样的顺序展开最后补上我自己筛选过的高频方法。3.1 截取与索引记住左闭右开区间Python字符串从左至右索引从0开始范围是(0, 长度-1)从右至左用负数索引-1代表最后一个字符。示例a hello print(a[1]) # e索引第2个字符 print(a[1:4]) # ell截取索引1到3的字符 print(a[-1]) # o最后一个字符 print(a[:]) # hello整个字符串逻辑说明切片语法是[起始:结束]结束位置不包含在内所以a[1:4]取索引1、2、3三个字符得到ell。这个左闭右开的设计贯穿所有Python序列类型字符串、列表、元组都遵循同一规则。a[:]省略起止表示整个序列常用于复制字符串。字符串不可变a[1] E会直接抛TypeError。参数说明索引越界报IndexError: string index out of range切片越界却不报错只会返回截断结果。a[1:100]返回elloa[100]直接报错。不确定边界时先用len(a)看长度。3.2 转义字符与原始字符串什么时候用r前缀PDF给了一张转义字符表高频的是以下几个转义字符含义说明\n换行最常用\t横向制表符对齐输出时用\反斜杠本身路径拼接时常见 和 引号字符串内嵌引号时用\r回车配合\n使用\b退格较少用\x0a十六进制换行等价于\n转义的核心争议出现在文件路径和正则表达式里。Windows路径C:\new\test.py中的\n和\t会被解析成换行与制表符路径直接坏掉。此时用原始字符串前缀r就能解决print(r\n)输出字面量\n而不是换行。原始字符串的含义是关闭转义解析按字面输出适合路径、正则表达式和模板片段。PDF示例是print(r\n)日常更多见的是正则场景写r\d比\d少一层转义可读性好很多。三引号是处理多行文本的另一种方案换行符会被真实保留hi 第一行 第二行 print(hi)逻辑说明三引号字符串直接排版多行不需要数着\n拼接也常被用作函数和类的docstring。它和hi 第一行\n第二行输出等价内容变多时维护成本差别很大。PDF提到三个双引号和三个单引号作用一样这点准确行业惯例是用双引号写docstring。3.3 格式化%运算符、format与f-string怎么选PDF的字符串格式化小节讲的是%运算符这是Python 2时代的主流方式print(My name is %s and weight is %d kg! % (demo, 21)) # 输出My name is demo and weight is 21 kg!格式符号对应关系%s字符串、%d整数、%f浮点数、%x十六进制、%e科学计数法。%d传入浮点数会报TypeError做输出前要确认类型或直接改成%.1f。多个参数用括号包成元组按位置匹配单个参数可以省略括号。同为PDF配套内容的print(x, end)不换行输出本质也是格式化场景的一部分只是通过end参数控制结尾字符。现在更推荐的做法是str.format()或f-string同一个例子改写为name demo print(fMy name is {name} and weight is {21} kg!)逻辑说明f-string以f开头把{变量名}直接嵌入字符串运行时替换值。与%相比f-string不需要维护占位符和参数列表的位置对应也不存在类型错位问题。PDF停留在%阶段是历史原因理解%s、%d的含义有助于读懂老代码新代码直接用f-string就好。3.4 常用字符串方法先记这十个PDF列了三十多个字符串方法不需要全背。按出现频率先记十个count计数、find查找索引、replace替换、split切分、strip去首尾空格、join拼接、lower/upper大小写、startswith/endswith前缀后缀判断、title标题化。text python基础语法 print(text.strip()) # 去首尾空格 print(text.replace(python, Python)) # 替换 print(text.split()) # 按空白拆成列表 print(-.join([a, b, c])) # a-b-c print(text.upper()) # 全大写逻辑说明split和join成对出现split把字符串变列表join把列表变字符串注意join的写法是分隔符在前、列表在后。strip默认去除空白字符也可以传参指定要去掉的字符。这些方法有一个共同特征都返回新字符串不修改原字符串因为字符串本身不可变。4. 列表与元组可变与不可变的边界决定代码走向PDF把List和Tuple放在一起讲是有道理的两者都是有序序列都支持索引和切片区别只有一条——列表可变元组不可变。这条边界影响增删改查的所有操作也关系着数据能否被安全传递。4.1 列表可变序列的增删改查与引用陷阱创建列表用方括号列表中可以混放数字、字符串甚至其他列表。基本操作list1 [1, 2, 3, 4, 5] list1.append(6) # 末尾追加list1变为[1,2,3,4,5,6] list1[2] 100 # 重新赋值索引2的元素 del list1[2] # 删除索引2的元素 pop_item list1.pop() # 弹出末尾元素6并返回逻辑说明append是原地修改不返回新列表del通过索引删除语法是del列表[索引]pop返回被弹出的元素。选择依据是是否需要保留被删元素不要返回值用del或remove需要返回值用pop。脚本操作符的核心是四类len取长度、组合、*重复、in成员判断len([1, 2, 3]) # 3 [1, 2, 3] [4, 5, 6] # [1,2,3,4,5,6] [Hi!] * 4 # 重复4次 3 in [1, 2, 3] # True列表内置方法里按使用频率排append、extend、insert、remove、pop、index、count、sort、reverse。这里特别说明extend和append的区别a [1, 2] a.append([3, 4]) # [1, 2, [3, 4]]嵌套列表 b [1, 2] b.extend([3, 4]) # [1, 2, 3, 4]展开追加逻辑说明append把参数当成一个整体塞进列表extend把参数视为可迭代对象逐个追加。传错时列表结构会完全不一样调试看到多一层嵌套先检查是不是用成了append。sort默认升序可传reverseTrue转降序sorted返回新列表不修改原列表。列表还有一个容易踩的引用陷阱list2 list1并不会复制列表只是给同一个列表对象多加了一个名字。此时对list2做append或修改元素list1同步变化。要真正复制用list1[:]切片或list1.copy()。嵌套列表时浅拷贝只复制外层内层列表仍共享这时需要copy模块的deepcopy写法结果适用场景list2 list1绑定同一对象只是想换个名字list2 list1[:]浅拷贝一维列表复制list2 list1.copy()浅拷贝同上copy.deepcopy(list1)深拷贝嵌套列表复制4.2 元组不可变序列与单元素陷阱元组用圆括号标识元素不可二次赋值。创建空元组用tuple()创建单个元素的元组必须在元素后加逗号t1 () # 空元组 t2 (42,) # 必须加逗号否则是整数42 t3 (1, 2, 3) # 三个元素的元组逻辑说明写成t (42)时Python把它当成括号内的表达式42类型是int不是元组。这是元组最经典的翻车点PDF专门强调“必须要在元素后加逗号”。判断一个写法是不是元组看赋值右侧是否有逗号。任意无符号的对象以逗号隔开也默认为元组所以a, b 1, 2这种拆包赋值右侧本质上是元组。元组的不可变性体现在两个维度不能修改单个元素也不能删除单个元素但可以整体删除del t3 # 删除整个元组参数说明元组可以参与和*运算生成新元组t3 (4, 5)得到(1,2,3,4,5)t3 * 2得到(1,2,3,1,2,3)。这容易让人误以为元组可修改实际上每次运算生成新对象原元组没有变化。需要频繁增删的数据不要用元组性能上反而吃亏。4.3 列表与元组互转先保护再修改的惯用法PDF给出的转换函数里有list(s)和tuple(s)二者可以互转t (1, 2, 3) lst list(t) # 元组转列表 lst.append(4) t2 tuple(lst) # 列表转元组 print(t2) # (1, 2, 3, 4)逻辑说明这个互转模式适合“先保护后修改”的场景先用元组保存不应变动的配置需要调整时转列表操作确认后再转回元组。转换开销很小但不要在循环里反复做类型转换。列表推导式如[x * 2 for x in range(5)]也是操作列表的高频写法虽然PDF没有展开但它是列表方法表的自然延伸读到这里时值得顺手实践。5. 缩进、流程控制与函数基础语法的避坑记录流程控制、函数与模块是PDF在变量类型之后的主线内容也是初学者报错最密集的区域。下面按主题整理原理与最小写法最后一节集中写几组现象、原因与解决。5.1 缩进与多行语句代码块由缩进控制不是大括号PDF强调“Python的缩进要求非常严格必须严格对齐”因为Python的代码块不由大括号控制而由缩进控制。同一代码块里的语句必须处于同一缩进层级混用空格和Tab会直接报IndentationError。主流编辑器默认把Tab展开成4个空格但从别处复制代码时容易带进混用的缩进解决办法是显示空白字符后统一替换。多行语句有两种写法行尾加反斜杠或者利用括号自动续行total item_one \ item_two \ item_three total2 (item_one item_two item_three)逻辑说明反斜杠续行要求反斜杠是行内最后一个字符后面不能有空格否则报语法错误。用括号包起来的表达式不需要反斜杠这是更推荐的方式因为括号内的缩进自由。同一行放多条语句可以用分号分隔但这个写法可读性差只在交互式命令行里图省事时用。5.2 流程控制的坑if条件、for循环与while的常见报错流程控制包括条件语句、循环语句和异常处理。最小可用写法score 85 if score 90: print(优秀) elif score 60: print(及格) else: print(不及格) for i in range(3): print(i) # 输出 0 1 2 while score 0: score - 10逻辑说明if分支在条件表达式后必须写冒号下一行缩进。elif取代其他语言里的else if一个if后可以跟多个elif最后用else兜底。range(3)生成[0,3)整数序列左闭右开规则与切片一致所以循环三次输出0、1、2。while与break/continue配合控制循环走向。最常见的报错是if行尾漏写冒号错误定位在if那一行逐个检查关键字行尾即可。另一个坑是range的边界range(1, 3)只迭代1和2不包含3忘记这个规则会少一轮循环。5.3 函数与模块def、return与import的边界函数用def定义参数按位置传递return返回结果没有return时默认返回None。模块用import导入from-import是另一种导入方式。最小示例def add(a, b): 两数相加 return a b import math print(math.sqrt(16)) # 4.0 from math import sqrt print(sqrt(16)) # 4.0逻辑说明函数定义以def 函数名(参数):开始函数体必须缩进。docstring写在函数体第一行可以用print(add.doc)查看。import math导入模块后通过math.sqrt调用from math import sqrt直接导入函数调用时不写模块名前缀。两种方式各有边界from方式代码短但可能出现同名冲突import方式更明确。小脚本用from大项目用import更稳妥。5.4 五组踩坑记录现象、原因与解决下面五条来自实际写Python脚本时遇到的报错每条按现象、原因、解决排列。第一组缩进混用Tab与空格 现象从PDF或网页复制代码到编辑器运行报IndentationError: inconsistent use of tabs and spaces in indentation。 原因粘贴过程中把Tab和空格混进了同一缩进层级Python不允许混合缩进。 解决编辑器里全选统一切换为“4个空格”或在命令行用python -m tabnanny 文件名.py定位混用行。第二组单个元素的元组被当成普通值 现象t (42)之后type(t)返回int希望得到的tuple没有出现。 原因圆括号在没有逗号时是表达式分组符不构造元组。 解决单元素元组写成(42,)记住判断标准是“有没有逗号”。第三组%d格式化传入浮点数报错 现象print(价格%d % 3.14)报TypeError: %d format: a number is required, not float。 原因%d只接受整数浮点数被拒。 解决改成%.2f保留两位小数先round或int转类型或者改用f-string自动处理类型转换。第四组if分支漏写冒号 现象运行报SyntaxError: invalid syntax错误行定位在if语句。 原因Python要求在条件表达式后写冒号缩进只是代码块的组成部分。 解决检查if/elif/else/for/while/try/except行尾是否都有冒号。第五组del误删整个列表 现象本想在函数里清空列表执行del list1后变量完全消失再访问报NameError。 原因del删除的是名字与对象的绑定不是清空列表内容。 解决要清空列表用list1.clear()或list1[:] []del只用于真正删除变量本身。6. 把68页手册变成速查卡三个验证习惯PDF的分章结构很适合做自查变量与类型一章、字符串一章、列表元组一章、控制流函数模块一章。我的建议是不要从头到尾精读完才动手而是每读一小节开一个交互式会话把示例敲一遍再改两个参数看输出变化然后把这组验证过的结论用自己的话记在一个备忘文件里。6.1 type()、dir()、help()三连验证具体做法是固定用三个内置函数做验证。type()看对象类型dir()看对象有哪些属性和方法help()看函数文档。拿到PDF里任何一个不熟悉的内置方法都可以做三连验证。比如读完replace方法的说明后敲dir(abc)会看到replace就在方法列表里再敲help(str.replace)会出现完整的参数签名和最简示例。这套组合拳比逐字背列表高效很多因为你在“用”而不是在“读”。我还会把PDF里的方法表精简成自己的速查卡筛掉不常用的只留高频项比如字符串只留count、find、replace、split、strip、join、lower、upper列表只留append、extend、pop、sort。筛选依据就是最近写的代码里用到了哪些。PDF的68页是完整参考答案速查卡是真正进脑子那部分。有个教训可以分享我最早学Python时PDF从头翻到尾以为自己都记住了结果真正写脚本时连列表切片边界都要回头查。后来改成“读一节、敲一节、改一个参数”的节奏印象立刻不一样了。从那以后我每次拿到新语言的语法手册都强制自己先跑一遍type、dir、help三连验证再往后翻下一页。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站