1. 引言
Python 作为一门简洁优雅、功能强大的高级编程语言,其核心语法是每一位开发者必须掌握的基础。本文将从分类讲解的角度,系统梳理 Python 的核心语法要素,帮助初学者建立清晰的知识框架,也为有经验的开发者提供复习和查漏补缺的参考。
我们将 Python 核心语法分为以下几个主要类别进行讲解:
- 基础语法与数据类型
- 流程控制结构
- 函数与模块
- 面向对象编程
- 异常处理
- 文件操作
- 常用内置函数与标准库
2. 基础语法与数据类型
2.1 变量与赋值
Python 是动态类型语言,变量无需声明类型,直接赋值即可。
python
# 变量赋值
name = "Python"
version = 3.12
is_awesome = True
# 多重赋值
a, b, c = 1, 2, 3
x = y = z = 0
# 交换变量值
a, b = b, a
2.2 基本数据类型
Python 内置了丰富的数据类型,主要包括:
数值类型
- 整数 (
int):42,-10,0 - 浮点数 (
float):3.14,2.0,-0.5 - 复数 (
complex):1+2j
序列类型
- 字符串 (
str):"hello",'world' - 列表 (
list):[1, 2, 3],['a', 'b', 'c'] - 元组 (
tuple):(1, 2, 3),('x', 'y')
映射类型
- 字典 (
dict):{'name': 'Alice', 'age': 25}
集合类型
- 集合 (
set):{1, 2, 3} - 不可变集合 (
frozenset):frozenset([1, 2, 3])
布尔类型
- 布尔值 (
bool):True,False
空类型
- 空值 (
NoneType):None
2.3 类型转换
python
# 显式类型转换
int("42") # 42
float("3.14") # 3.14
str(100) # "100"
list("abc") # ['a', 'b', 'c']
tuple([1, 2, 3]) # (1, 2, 3)
2.4 运算符
算术运算符 : +, -, *, /, //, %, **
比较运算符 : ==, !=, >, <, >=, <=
逻辑运算符 : and, or, not
成员运算符 : in, not in
身份运算符 : is, is not
3. 流程控制结构
3.1 条件语句
python
# if-elif-else 结构
score = 85
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
else:
grade = 'D'
print(f"成绩等级: {grade}")
3.2 循环语句
for 循环
python
# 遍历序列
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
# 使用 range()
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(1, 6): # 1, 2, 3, 4, 5
print(i)
for i in range(1, 10, 2): # 1, 3, 5, 7, 9
print(i)
while 循环
python
# 基本 while 循环
count = 0
while count < 5:
print(count)
count += 1
# 带 break 和 continue
while True:
user_input = input("输入 'quit' 退出: ")
if user_input == 'quit':
break
if not user_input:
continue
print(f"你输入了: {user_input}")
3.3 循环控制语句
break: 完全终止循环continue: 跳过当前迭代,继续下一次else子句: 循环正常结束时执行(非 break 退出)
python
# for-else 示例
for i in range(5):
if i == 10: # 这个条件永远不会成立
break
else:
print("循环正常结束,没有遇到 break")
4. 函数与模块
4.1 函数定义与调用
python
# 基本函数定义
def greet(name):
"""向指定的人问好"""
return f"Hello, {name}!"
# 调用函数
message = greet("Alice")
print(message) # Hello, Alice!
# 带默认参数的函数
def power(base, exponent=2):
"""计算幂,默认指数为2"""
return base ** exponent
print(power(3)) # 9
print(power(3, 3)) # 27
# 关键字参数调用
def describe_person(name, age, city):
return f"{name} is {age} years old, living in {city}."
# 使用关键字参数,顺序无关
describe_person(age=25, city="Beijing", name="Bob")
4.2 参数类型
- 位置参数 :
def func(a, b, c) - 默认参数 :
def func(a, b=10) - 可变位置参数 :
def func(*args) - 可变关键字参数 :
def func(**kwargs)
python
# 可变参数示例
def print_info(*args, **kwargs):
print("位置参数:", args)
print("关键字参数:", kwargs)
print_info(1, 2, 3, name="Alice", age=25)
# 输出:
# 位置参数: (1, 2, 3)
# 关键字参数: {'name': 'Alice', 'age': 25}
4.3 返回值
python
# 返回多个值(实际上是返回元组)
def get_min_max(numbers):
return min(numbers), max(numbers)
min_val, max_val = get_min_max([3, 1, 4, 1, 5, 9])
print(f"最小值: {min_val}, 最大值: {max_val}")
4.4 模块导入
python
# 导入整个模块
import math
print(math.sqrt(16)) # 4.0
# 导入特定函数/类
from datetime import datetime
now = datetime.now()
# 给模块或函数起别名
import numpy as np
from matplotlib import pyplot as plt
# 导入模块中的所有内容(不推荐)
from math import *
4.5 自定义模块
python
# mymodule.py 文件内容
"""
这是一个自定义模块示例
"""
def add(a, b):
"""返回两个数的和"""
return a + b
def multiply(a, b):
"""返回两个数的积"""
return a * b
# 主程序中使用
if __name__ == "__main__":
# 模块测试代码
print(add(2, 3)) # 5
5. 面向对象编程
5.1 类与对象
python
# 定义类
class Dog:
# 类属性
species = "Canis familiaris"
# 初始化方法
def __init__(self, name, age):
# 实例属性
self.name = name
self.age = age
# 实例方法
def bark(self):
return f"{self.name} says: Woof!"
def get_info(self):
return f"{self.name} is {self.age} years old."
# 创建对象
my_dog = Dog("Buddy", 3)
print(my_dog.bark()) # Buddy says: Woof!
print(my_dog.get_info()) # Buddy is 3 years old.
print(my_dog.species) # Canis familiaris
5.2 继承
python
# 父类
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
raise NotImplementedError("子类必须实现此方法")
# 子类
class Cat(Animal):
def speak(self):
return f"{self.name} says: Meow!"
class Dog(Animal):
def speak(self):
return f"{self.name} says: Woof!"
# 使用
animals = [Cat("Kitty"), Dog("Buddy")]
for animal in animals:
print(animal.speak())
5.3 封装与属性
python
class BankAccount:
def __init__(self, owner, balance=0):
self.owner = owner
self.__balance = balance # 私有属性
def deposit(self, amount):
if amount > 0:
self.__balance += amount
return True
return False
def withdraw(self, amount):
if 0 < amount <= self.__balance:
self.__balance -= amount
return True
return False
# 属性装饰器
@property
def balance(self):
return self.__balance
# 使用
account = BankAccount("Alice", 1000)
account.deposit(500)
print(account.balance) # 1500
6. 异常处理
6.1 基本异常处理
python
try:
# 可能引发异常的代码
result = 10 / 0
print("这行不会执行")
except ZeroDivisionError:
# 处理特定异常
print("不能除以零!")
except (ValueError, TypeError) as e:
# 处理多种异常
print(f"值或类型错误: {e}")
except Exception as e:
# 处理所有其他异常
print(f"发生未知错误: {e}")
else:
# 没有异常时执行
print("计算成功")
finally:
# 无论是否异常都会执行
print("清理资源")
6.2 自定义异常
python
class InsufficientFundsError(Exception):
"""余额不足异常"""
def __init__(self, balance, amount):
self.balance = balance
self.amount = amount
super().__init__(f"余额不足: 当前余额{balance}, 需要{amount}")
def withdraw_money(balance, amount):
if amount > balance:
raise InsufficientFundsError(balance, amount)
return balance - amount
# 使用
try:
withdraw_money(100, 200)
except InsufficientFundsError as e:
print(e) # 余额不足: 当前余额100, 需要200
7. 文件操作
7.1 文件读写
python
# 写入文件
with open("example.txt", "w", encoding="utf-8") as f:
f.write("Hello, World!\n")
f.write("这是第二行\n")
# 读取整个文件
with open("example.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
# 逐行读取
with open("example.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip()) # 去除换行符
# 读取所有行到列表
with open("example.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
print(lines)
7.2 文件模式
'r': 只读(默认)'w': 写入(覆盖)'a': 追加'x': 创建新文件写入'b': 二进制模式't': 文本模式(默认)'+': 读写模式
8. 常用内置函数与标准库
8.1 常用内置函数
python
# 输入输出
name = input("请输入你的名字: ")
print(f"你好, {name}!")
# 类型相关
type(42) # <class 'int'>
isinstance(42, int) # True
len([1, 2, 3]) # 3
# 数学运算
abs(-10) # 10
round(3.14159, 2) # 3.14
max(1, 5, 3) # 5
min(1, 5, 3) # 1
sum([1, 2, 3]) # 6
# 迭代相关
range(5) # range(0, 5)
enumerate(['a', 'b', 'c']) # 枚举器
zip([1, 2], ['a', 'b']) # 配对
# 转换函数
int("42") # 42
str(100) # "100"
list("abc") # ['a', 'b', 'c']
tuple([1, 2]) # (1, 2)
dict([('a', 1), ('b', 2)]) # {'a': 1, 'b': 2}
8.2 常用标准库模块
python
# os - 操作系统接口
import os
os.getcwd() # 当前工作目录
os.listdir('.') # 列出目录内容
# sys - 系统相关参数和函数
import sys
sys.version # Python版本
sys.argv # 命令行参数
# datetime - 日期时间处理
from datetime import datetime, date, timedelta
now = datetime.now()
today = date.today()
tomorrow = today + timedelta(days=1)
# json - JSON处理
import json
data = {'name': 'Alice', 'age': 25}
json_str = json.dumps(data) # 序列化
parsed = json.loads(json_str) # 反序列化
# re - 正则表达式
import re
pattern = r'\d+' # 匹配数字
matches = re.findall(pattern, "abc123def456") # ['123', '456']
9. 总结
Python 核心语法虽然简洁,但功能强大。掌握这些基础语法分类后,你可以:
- 编写清晰的代码:利用 Python 的简洁语法表达复杂逻辑
- 构建模块化程序:通过函数和类组织代码结构
- 处理各种数据:灵活运用内置数据类型和标准库
- 编写健壮的程序:使用异常处理增强程序稳定性
- 进行文件操作:读写各种格式的数据文件
建议的学习路径:
- 先掌握基础语法和数据类型
- 熟练使用流程控制结构
- 理解函数和模块的用法
- 深入学习面向对象编程
- 实践异常处理和文件操作
- 探索常用内置函数和标准库
通过不断练习和实践,你将能够熟练运用 Python 解决实际问题,为进一步学习数据分析、Web 开发、人工智能等方向打下坚实基础。