Python零基础入门:核心语法与数据结构详解
作者:半吊子全栈工匠2026.11.07 01:43浏览量:1简介:本文面向Python零基础学习者,系统梳理入门阶段必须掌握的核心知识点:输出格式化、运算符、条件与循环控制,以及列表、元组、字典、集合四大容器的增删改查操作。文中配有可直接运行的示例代码与易错点提示,帮助读者快速建立完整的语法框架,为后续进阶学习打下坚实基础。
一、开篇:为什么这些基础值得反复打磨
对初学者而言,Python的入门阶段大致由三块拼图构成:输出与格式化、运算符与流程控制、四大容器(列表、元组、字典、集合)的增删改查。很多学习者感到“学不扎实”,往往不是因为知识太深,而是这些基础点零散地分布在教材各处,缺少一次系统性串联。本文按照“输出 → 运算 → 流程 → 容器”的学习主线,把高频考点和易错点整合成一份完整的入门指南,每一步都配有可直接运行的示例代码。
二、输出与格式化:让程序“开口说话”
1. print的end参数:控制换行行为
print在默认情况下会在输出结束后自动换行,这由参数end的默认值(换行符)决定。把end改成其他内容,就能在输出末尾追加自定义间隔符,并让下一个print继续输出在同一行:
print("Hello", end=" ")print("World")# 输出结果:Hello World
这个技巧在打印进度、拼接一行多个结果时非常实用。
2. 占位符:%s与格式化输出
%是传统的格式化方式,其中%s是字符串占位符,会被后面的变量依次替换:
name = "小明"age = 18print("姓名:%s,年龄:%d" % (name, age))# 输出:姓名:小明,年龄:18
%s除了接收字符串,也能把数字自动转为字符串输出;占位整数时使用%d更规范。
三、运算符:程序计算的基石
1. 复合赋值运算符
+=、-=等复合赋值运算符把“计算+赋值”合并成一步,a += 1 等价于 a = a + 1,同理还有*=、/=等。循环计数、累加求和几乎都依赖它们:
total = 0total += 10 # 等价于 total = total + 10
2. 比较运算符
判断运算符包括 ==(等于)、!=(不等于)、>、<、>=、<=,运算结果是布尔值True或False。特别注意:=是赋值,==才是判断,这是初学者最高频的笔误之一。
3. 逻辑运算符
and表示“两边都要满足”,or表示“只要一方满足”,not表示取相反结果:
age = 20print(age > 18 and age < 60) # True,两个条件都成立print(age < 18 or age > 60) # False,两个条件都不成立print(not age > 18) # False,结果取反
四、流程控制:赋予程序判断与重复的能力
1. if条件判断
if后面写条件,条件末尾必须加冒号,冒号下一行缩进的代码块才会被条件控制:
score = 85if score >= 60:print("及格")else:print("不及格")
缩进是Python语法本身的一部分,同一代码块必须保持一致,通用规范推荐4个空格。
2. while循环
while在条件成立时反复执行代码块,适合“不知道循环多少次、只知道何时停止”的场景。使用时务必保证循环体内有让条件趋向结束的语句,否则会陷入死循环。
3. for循环与range
for i in ... 可以挨个取出可迭代对象中的值,i是临时变量,in后面跟循环对象,字符串、列表都可以被遍历:
for ch in "abc":print(ch) # 依次输出 a、b、c
range用来记录循环次数,相当于计数器,常与for搭配:
for i in range(5):print(i) # 依次输出 0 1 2 3 4
4. break与continue
break用来彻底结束整个循环;continue用来结束本次循环、跳过剩余语句、继续下一次循环。在while循环中使用continue时要特别小心:如果修改变量的语句写在continue之后,程序会在修改前就被跳回循环开头,造成死循环。因此改变变量的语句必须放在continue之前:
i = 0while i < 5:i += 1 # 必须先修改,再判断是否continueif i == 3:continueprint(i) # 输出 1 2 4 5,跳过3
五、列表:最常用的有序容器
1. 定义与基本特性
列表放在中括号里,元素之间用逗号隔开,允许存放不同类型的数据;列表支持切片操作,也可以直接用for循环遍历:
li = [10, "python", 3.14]print(li[0]) # 10print(li[0:2]) # [10, 'python'],切片含头不含尾for item in li:print(item)
2. 增:append / extend / insert
- append(元素):把传入内容作为一个整体追加到列表末尾;如果传入的是列表,整个列表会成为新元素;
- extend(可迭代对象):把可迭代对象拆开逐个添加,例如extend([1, 2])会让列表多出两个元素;
- insert(下标, 元素):在指定位置插入;若该位置已有元素,原有元素会整体后移。
a = [1, 2]a.append([3, 4]) # [1, 2, [3, 4]]b = [1, 2]b.extend([3, 4]) # [1, 2, 3, 4]b.insert(1, 99) # [1, 99, 2, 3, 4]
3. 删:del / pop / remove
- del:直接按下标删除,也可以删除切片甚至整个变量;
- pop(下标):按下标删除并返回被删除的元素,不传下标时默认删除末尾元素;
- remove(元素):按值删除,默认只删除最先出现的那一个指定元素;元素不存在会报错。
4. 改与查
修改直接通过下标赋值完成。查询方面:in判断元素是否存在于列表中,返回布尔值;index(元素)返回指定元素首次出现的下标,找不到会报错;count(元素)统计元素出现的次数。
li = [1, 2, 2, 3]print(2 in li) # Trueprint(li.index(2)) # 1print(li.count(2)) # 2li[0] = 100 # 修改下标0的元素
5. 排序:sort与reverse
sort()将列表按特定顺序原地排列,默认从小到大(传入reverse=True可改为降序);reverse()只负责把列表整体倒过来,不做大小比较。
6. 列表推导式
列表推导式用一行代码生成列表,基本格式为[表达式 for 变量 in 列表或range对象]:
squares = [x * x for x in range(1, 6)]print(squares) # [1, 4, 9, 16, 25]
7. 嵌套列表
列表里还可以嵌套列表,用两层下标取出内层元素:
grid = [[1, 2], [3, 4]]print(grid[1][0]) # 3
六、元组:不可变的有序序列
元组与列表结构相似,但不能进行增、删、改操作,一旦创建就固定不变,适合保存不希望被误改的数据。元组仍支持遍历、切片和查询。一个细节:只含一个元素的元组要写成(1,),逗号不能省略。
七、字典:按键取值的键值对映射
字典以“键值对”组织数据,通过键而不是下标访问元素。
1. 用get安全查找
用中括号访问不存在的键会直接报错,而get更安全:键存在返回对应值,不存在时默认返回None,也可以自己设置默认返回值:
info = {"name": "小明", "age": 18}print(info.get("city")) # Noneprint(info.get("city", "未知")) # 未知
2. 新增与修改一体的写法
对字典执行 d[键] = 值 时,如果键已存在则修改,不存在则新增,同一种写法覆盖两种场景:
info["age"] = 19 # 键已存在,执行修改info["city"] = "北京" # 键不存在,执行新增
八、集合:自动去重的无序容器
集合中的元素不重复、无下标,常用于去重和快速成员判断。
1. 添加:add与update
add一次只能添加一个整体元素,传入列表等可迭代对象会报错;update接收可迭代对象,把其中的元素一个一个放进集合:
s = {1, 2}s.add(3) # {1, 2, 3}s.update([4, 5]) # {1, 2, 3, 4, 5}
2. 删除:remove / pop / discard
- remove(元素):删除指定元素,元素不存在会报错;
- pop():不需要传参,会移除并返回集合中的某个元素(对数值集合通常表现为移除最小的元素,但顺序并无保证);
- discard(元素):同样按元素删除,区别是元素不存在时不会报错。
s = {1, 2, 3}s.remove(2) # {1, 3}s.discard(100) # 不报错s.pop() # 移除并返回一个元素
九、四大容器对比与学习建议
1. 一张表看清选型
| 容器 | 定义符号 | 有序性 | 可变性 | 典型用途 |
|---|---|---|---|---|
| 列表 | [ ] | 有序,可切片 | 可变 | 顺序存储、动态增删改 |
| 元组 | ( ) | 有序 | 不可变 | 固定不变的数据 |
| 字典 | {键: 值} | 以键定位 | 可变 | 键值映射、快速查找 |
| 集合 | { } | 无序 | 可变 | 去重、成员判断 |
2. 学习建议
- 边学边敲:每个语法点都在编辑器里亲手运行一遍,观察输出与报错;
- 善用报错信息:index找不到元素、remove删不存在元素这类报错,正是理解函数行为的最好材料;
- 小项目串联:例如用列表+字典+循环写一个“学生成绩管理”小工具,把增删改查全部用上;
- 循序渐进扩展场景:掌握基础后,可以尝试用循环处理批量数据,或借助云平台提供的对象存储、日志服务等通用能力,把练习从本地脚本推向真实的数据处理场景。
基础语法的价值不在“背下来”,而在“形成肌肉记忆”。把本文的每个示例亲手运行、修改、再运行,入门阶段的核心拼图就真正拼完整了。

登录后可评论,请前往 登录 或 注册