logo

Python基础核心:格式化输出、循环与列表详解

作者:demo2026.11.07 01:16浏览量:0

简介:本文面向Python初学者,系统梳理格式化输出的%占位符与f-string两种方式、and/or/not逻辑运算、for循环与range计数器、break与continue的流程控制要点,并深入讲解列表的增删改查、切片、排序、推导式与嵌套访问,同时辨析元组的不可变特性,帮助读者构建扎实的Python语法基础,快速迈过入门阶段最常卡住的知识门槛。

一、从零开始:这些基础为什么至关重要

Python之所以被广泛认为适合零基础学习者入门,核心原因在于其语法接近自然语言、数据结构直观易用。然而真正的入门并不止于“跑通第一行代码”,而在于扎实掌握三类最常用的能力:把数据以预期格式清晰呈现的格式化输出能力、用逻辑运算表达复杂判断的条件组合能力,以及用循环和列表组织批量数据的处理能力。这三条主线几乎贯穿了所有Python脚本、数据处理与自动化任务。无论在本地环境还是云端开发环境中搭建练习平台,成本都很低,学习者应把精力放在对这些基础机制的深入理解上,而非急于追求高级特性。

二、字符串格式化输出的两种主流方式

2.1 % 占位符方式

这是Python早期采用的格式化手段,思想源于C语言风格的格式化输出:先在字符串中“挖坑”,再用数据“填坑”。

  • %s:字符串占位符,实际传入的绝大多数对象都会被自动转换为字符串形式;
  • %f:浮点数占位符,默认保留6位小数;
  • %.4f:在%f基础上指定精度,表示保留4位小数,并自动四舍五入。
  1. name = "Python"
  2. score = 92.56789
  3. print("课程:%s,得分:%.2f" % (name, score))
  4. # 输出:课程:Python,得分:92.57

需要注意,占位符与后方数据必须一一对应,数量不匹配或类型严重不符都会导致报错。

2.2 f-string 格式化

f-string是更现代、更推荐的写法:在字符串前加字母f,把变量直接写进花括号{}中,花括号内还支持表达式和精度控制。

  1. score = 92.56789
  2. print(f"得分:{score:.2f},翻倍后:{score * 2:.1f}")
  3. # 输出:得分:92.57,翻倍后:185.1

相比%方式,f-string可读性更强、不易出现参数错位,是新代码的首选;理解%占位符则有助于阅读大量存量代码。

三、逻辑运算符:and、or、not

条件判断离不开逻辑运算符,三者的语义可以概括为:

  • and:逻辑与,两侧条件都满足时整体结果才为真;
  • or:逻辑或,只要有一方满足,整体结果即为真;
  • not:逻辑非,对结果取反,真变假、假变真。
  1. age = 20
  2. has_id = True
  3. if age >= 18 and has_id:
  4. print("允许进入")
  5. if not age < 18:
  6. print("已成年")

实践中有两个细节值得注意:一是短路求值——and在左侧为假时不再计算右侧,or在左侧为真时不再计算右侧,合理利用可以让判断更简洁安全;二是Python中非空字符串、非零数字、非空列表都被视为“真值”,理解这一点能避免许多隐蔽的逻辑错误。

四、循环结构与流程控制

4.1 for 循环与 range 计数器

for i in 可迭代对象 的含义是:逐个取出可迭代对象中的值,赋给临时变量i,执行循环体,直到取完为止。字符串就是典型的可迭代对象,for循环可以挨个取出其中的字符:

  1. for ch in "abc":
  2. print(ch) # 依次输出 a、b、c

range函数用来记录循环次数,相当于一个计数器,常用于“执行固定次数”的场景:

  1. for i in range(5): # 0,1,2,3,4
  2. print(i)
  3. for i in range(1, 10, 2): # 1,3,5,7,9,步长为2
  4. print(i)

4.2 break 与 continue

  • break:立即终止整个循环,程序继续执行循环之后的代码;
  • continue:跳过本次循环中剩余语句,直接进入下一次循环。

必须强调的是:在while循环中使用continue时,改变循环变量的语句必须写在continue之前,否则变量永远得不到更新,程序会陷入死循环。for循环中变量由可迭代对象自动推进,风险较低,但这一原则在while场景中是高频踩坑点。

  1. i = 0
  2. while i < 5:
  3. i += 1 # 必须在continue之前更新
  4. if i == 3:
  5. continue
  6. print(i) # 输出 1,2,4,5

五、列表:最常用的可变序列

5.1 创建、切片与遍历

列表放在中括号里,元素之间用逗号分隔,允许不同数据类型共存:

  1. li = [1, "python", 3.14, True]

列表支持切片操作,语法为[起始:结束:步长],遵循“左闭右开”原则;列表本身也是可迭代对象,可以直接用for循环遍历。

  1. nums = [10, 20, 30, 40, 50]
  2. print(nums[1:4]) # [20, 30, 40]
  3. print(nums[::-1]) # 反转副本 [50, 40, 30, 20, 10]

5.2 添加元素:append、extend、insert

  • append(元素):整体添加,把传入对象作为单个元素追加到列表末尾;
  • extend(可迭代对象):分散添加,把可迭代对象中的元素逐个拆开并入列表;
  • insert(下标, 元素):指定位置插入,若该位置已有元素,原有元素及其后元素整体后移。
  1. li = [1, 2]
  2. li.append([3, 4]) # [1, 2, [3, 4]],整体作为一个元素
  3. li = [1, 2]
  4. li.extend([3, 4]) # [1, 2, 3, 4],逐个并入
  5. li.insert(1, 99) # [1, 99, 2, 3, 4]

三者的区别是初学者最容易混淆的地方,建议亲手运行上面的例子加以体会。

5.3 修改、判断与查询

修改元素直接通过下标赋值即可:li[0] = 100。判断某个元素是否存在用in运算符,返回布尔值。常用查询方法有两个:

  • index(值):返回该值首次出现的下标,若不存在会报错,因此常与in配合使用;
  • count(值):统计该值在当前列表中出现的次数。
  1. li = [1, 2, 2, 3]
  2. print(2 in li) # True
  3. print(li.index(3)) # 3
  4. print(li.count(2)) # 2

5.4 删除元素:del、pop、remove

  • del 列表[下标]:直接按位置删除,也可删除整个变量;
  • pop(下标):按位置删除并返回被删元素,不传参数时默认删除末尾元素;
  • remove(值):按值删除,默认只删除列表中最先出现的那个匹配元素,值不存在则报错。
  1. li = [1, 2, 3, 2]
  2. li.remove(2) # [1, 3, 2],只删第一个2
  3. li.pop() # 弹出末尾的2
  4. del li[0] # 删除下标0的元素

选择依据可概括为:知道位置用del或pop,知道值用remove,需要拿回被删数据用pop。

5.5 排序与反转

  • sort():将列表按特定顺序原地排列,默认从小到大(升序),也可通过参数改为降序;
  • reverse():将列表整体倒置,不涉及大小比较。
  1. nums = [3, 1, 4, 1, 5]
  2. nums.sort() # [1, 1, 3, 4, 5]
  3. nums.reverse() # [5, 4, 3, 1, 1]

注意这两个方法都是原地修改且返回值为None,若希望保留原列表,应先以切片副本等方式备份。

5.6 列表推导式

列表推导式用一行代码完成“遍历—加工—收集”的过程,基本格式为:

[表达式 for 变量 in 列表或range函数]

  1. squares = [x ** 2 for x in range(1, 6)] # [1, 4, 9, 16, 25]

推导式比等价的for循环更简洁,通常执行效率也更高,是Python风格化写法的重要体现;但当逻辑复杂时,应优先保证代码可读性。

5.7 嵌套列表

列表可以嵌套列表,形成二维结构,通过li[行][列]两层下标即可取出内层列表中的元素:

  1. matrix = [[1, 2, 3], [4, 5, 6]]
  2. print(matrix[1][2]) # 6

嵌套列表配合for循环嵌套,可以实现矩阵遍历、二维表格处理等常见操作。

六、元组:不可变序列

元组与列表外观相似(使用圆括号),最本质的区别是不可变:元组创建后不能进行增加、删除、修改操作。这一特性带来两个好处:一是数据更安全,可防止程序意外改写;二是元组可应用于需要数据稳定性的场景(如作为字典的键)。凡是不需要中途变更的数据集合,优先使用元组是一种良好的编程习惯。

  1. t = (1, 2, 3)
  2. # t[0] = 10 # 报错,元组不可修改

七、总结

本文围绕Python零基础阶段的三条主线展开:格式化输出解决“数据如何清晰呈现”的问题,%占位符与f-string各有适用场景;逻辑运算符与循环控制(for、range、break、continue)构成程序流程的骨架,其中continue与while变量更新的先后顺序是必须牢记的细节;列表作为最常用的可变序列,其增(append/extend/insert)、删(del/pop/remove)、改(下标赋值)、查(in/index/count)、排序(sort/reverse)、推导式与嵌套访问共同构成一套完整的数据操作工具箱,而元组则以不可变性提供了另一种数据组织选择。建议学习者按知识点逐一动手验证示例代码,在反复练习中把这些语法内化为真正的编程能力。

发表评论

活动