摘要:Python 基础语法与概念1.1 变量与数据类型变量命名规则和最佳实践基本数据类型:数值类型 (int, float, complex)字符串 (str)布尔值 (bool)类型转换和检查Python 的动态类型特性
大家好,我是章北海
很多初学者在开始学习编程时,往往会陷入一个误区:花太多时间在"完整地学习每一个知识点"上。这种学习方式不仅效率低下,而且容易让人失去兴趣。
Python 的美妙之处在于它的简单直观,你不需要花费数月时间去啃教材或教程,只需要跟着这篇教程敲一遍代码,就能掌握基础知识。
记住,编程最重要的不是"知道",而是"做到"。
"纸上得来终觉浅,绝知此事要躬行",我的建议是:
先快速过一遍这篇教程,边看边敲代码
找一个感兴趣的小项目开始动手
遇到问题时再回来查阅相关章节
在解决实际问题中加深理解
通过调试 bug 来积累经验
1. Python 基础语法与概念1.1 变量与数据类型变量命名规则和最佳实践
基本数据类型:
数值类型 (int, float, complex)
字符串 (str)
布尔值 (bool)
类型转换和检查
Python 的动态类型特性
# 数值类型示例 age = 25 # 整数 price = 19.99 # 浮点数 complex_num = 3 + 4j # 复数 # 字符串示例 name = "Python 学习者"message = '''这是一个 多行字符串示例'''# 布尔值示例 is_student = Trueis_working = False# 类型检查和转换 print(type(age)) # str_num = "100"num = int(str_num) # 字符串转整数1.2 运算符算术运算符 (+, -, *, /, //, %, **)
比较运算符 (==, !=, >, =,
逻辑运算符 (and, or, not)
赋值运算符 (=, +=, -=等)
位运算符 (&, |,^, >>,
# 算术运算符示例 a = 10b = 3print(a + b) # 13 (加法) print(a - b) # 7 (减法) print(a * b) # 30 (乘法) print(a / b) # 3.3333... (除法) print(a // b) # 3 (整除) print(a % b) # 1 (取余) print(a ** b) # 1000(幂运算) # 比较和逻辑运算符 x = 5y = 10print(x y or y 1.3 条件语句if 语句的基本结构
elif 和 else 的使用
嵌套条件语句
三元运算符
match-case 语句 (Python 3.10+)
# if-elif-else 示例 score = 85if score >= 90:print("优秀")elif score >= 80:print("良好")elif score >= 60:print("及格")else:print("不及格")# 三元运算符 age = 20status = "成年" if age >= 18 else "未成年"# match-case 示例 (Python 3.10+) def check_status(status_code):match status_code:case 200:return "成功"case 404:return "未找到"case _:return "未知状态"1.4 循环结构for 循环
range 函数的使用
遍历序列和集合
enumerate 的应用
while 循环
循环条件设计
break 和 continue
else 子句
循环嵌套和控制
# for 循环示例 for i in range(5):print(i) # 打印 0 到 4 fruits = ["苹果", "香蕉", "橙子"]for fruit in fruits:print(fruit)# enumerate 示例 for index, fruit in enumerate(fruits):print(f"第{index+1}个水果是:{fruit}")# while 循环示例 count = 0while count 2. 函数与模块2.1 函数基础函数定义与调用
参数类型:
位置参数
关键字参数
默认参数
可变参数 (*args, **kwargs)
返回值处理
函数文档字符串
# 基本函数定义 def greet(name, greeting="你好"):""" 向指定的人打招呼 参数: name (str): 人名 greeting (str): 问候语,默认为"你好" 返回: str: 完整的问候语 """return f"{greeting}, {name}!"# 函数调用 print(greet("小明")) # 你好,小明! print(greet("小红", "早安")) # 早安,小红! # 可变参数示例 def sum_numbers(*args):return sum(args)print(sum_numbers(1, 2, 3, 4)) # 10 # 关键字参数示例 def print_info(**kwargs):for key, value in kwargs.items:print(f"{key}: {value}")print_info(name="张三", age=20, city="北京")2.2 模块使用模块导入方式
包的概念和结构
常用内置模块使用示例
# 常用模块示例 import mathimport randomimport datetimeimport os# math 模块 print(math.pi) # 圆周率 print(math.sqrt(16)) # 平方根 # random 模块 print(random.randint(1, 10)) # 随机整数 print(random.choice(['苹果', '香蕉', '橙子'])) # 随机选择 # datetime 模块 now = datetime.datetime.nowprint(f"当前时间:{now}")print(f"明天:{now + datetime.timedelta(days=1)}")# os 模块 print(os.getcwd) # 当前工作目录 print(os.listdir) # 目录内容列表3. 数据处理基础3.1 数据结构列表 (List)
元组 (Tuple)
集合 (Set)
字典 (Dict)
# 列表示例 fruits = ["苹果", "香蕉", "橙子"]fruits.append("葡萄") # 添加元素 fruits.insert(1, "梨") # 插入元素 fruits.remove("香蕉") # 删除元素 print(fruits[1:3]) # 切片操作 # 元组示例 point = (3, 4)x, y = point # 元组解包 # 集合示例 numbers = {1, 2, 3, 4, 5}more_numbers = {4, 5, 6, 7, 8}print(numbers & more_numbers) # 交集 print(numbers | more_numbers) # 并集 # 字典示例 student = {"name": "张三","age": 20,"scores": {"数学": 90,"英语": 85}}print(student.get("grade", "未知")) # 安全获取值3.2 字符串操作字符串方法
格式化方式
正则表达式
# 字符串方法示例 text = " Python 编程 "print(text.strip) # 去除空白 print(text.upper) # 转大写 print(text.lower) # 转小写 # 字符串格式化 name = "小明"age = 20# f-string print(f"{name}今年{age}岁")# format 方法 print("{}今年{}岁".format(name, age))# %-格式化 print("%s今年%d岁" % (name, age))# 正则表达式 import retext = "我的电话是 123-4567-8900"phone = re.search(r"\d{3}-\d{4}-\d{4}", text)if phone:print(f"找到电话号码:{phone.group}")3.3 文件操作文件读写
JSON 处理
CSV 处理
# 文件读写示例 with open("example.txt", "w", encoding="utf-8") as f:f.write("这是一个示例文件\n")f.write("包含多行文本")with open("example.txt", "r", encoding="utf-8") as f:content = f.readprint(content)# JSON 处理 import jsondata = {"name": "Python 教程","version": "2025","topics": ["基础", "进阶", "实战"]}# 写入 JSON with open("data.json", "w", encoding="utf-8") as f:json.dump(data, f, ensure_ascii=False, indent=2)# 读取 JSON with open("data.json", "r", encoding="utf-8") as f:loaded_data = json.load(f)4. 错误处理异常处理机制
自定义异常
# 异常处理示例 def divide(a, b):try:result = a / bexcept ZeroDivisionError:print("错误:除数不能为 0")return Noneexcept TypeError:print("错误:参数类型必须是数字")return Noneelse:return resultfinally:print("计算完成")# 自定义异常 class ValidationError(Exception):def __init__(self, message):self.message = messagesuper.__init__(self.message)def validate_age(age):if not isinstance(age, int):raise ValidationError("年龄必须是整数")if age 150:raise ValidationError("年龄必须在 0-150 之间")return True# 异常处理示例 try:validate_age("20")except ValidationError as e:print(f"验证失败:{e.message}")5. 面向对象编程 (OOP)5.1 类和对象类的定义和实例化
属性和方法
构造函数和析构函数
访问修饰符
属性装饰器 (@property)
class Student:# 类变量 school = "Python 大学"def __init__(self, name: str, age: int):# 实例变量 self.name = name # 公有属性 self._age = age # 受保护属性 self.__score = 0 # 私有属性 def __del__(self):print(f"{self.name}对象被销毁")# 实例方法 def study(self, course: str) -> None:print(f"{self.name}正在学习{course}")# 属性装饰器 - getter @propertydef score(self) -> int:return self.__score# 属性装饰器 - setter @score.setterdef score(self, value: int) -> None:if not isinstance(value, int):raise TypeError("分数必须是整数")if 0 str:return cls.school# 静态方法 @staticmethoddef is_adult(age: int) -> bool:return age >= 18# 使用示例 if __name__ == "__main__":# 创建实例 student = Student("张三", 20)# 访问公有属性和方法 print(student.name) # 张三 student.study("Python") # 张三正在学习 Python # 使用属性装饰器 student.score = 95 # 设置分数 print(student.score) # 95 # 使用类方法和静态方法 print(Student.get_school) # Python 大学 print(Student.is_adult(20)) # True5.2 继承与多态单继承和多继承
方法重写
super 函数
抽象类和接口
混入类 (Mixins)
from abc import ABC, abstractmethodfrom typing import List# 抽象基类 class Animal(ABC):def __init__(self, name: str):self.name = name@abstractmethoddef make_sound(self) -> str:passdef introduce(self) -> str:return f"我是{self.name}, {self.make_sound}"# Mixin 类 class FlyableMixin:def fly(self) -> str:return "我可以飞行"class SwimmableMixin:def swim(self) -> str:return "我可以游泳"# 具体类 - 单继承 class Dog(Animal):def make_sound(self) -> str:return "汪汪汪!"def fetch_ball(self) -> str:return "我可以接球"# 具体类 - 多继承 class Duck(Animal, FlyableMixin, SwimmableMixin):def make_sound(self) -> str:return "嘎嘎嘎!"# 使用示例 def animal_chorus(animals: List[Animal]) -> None:"""演示多态性"""for animal in animals:print(animal.introduce)if __name__ == "__main__":dog = Dog("旺财")duck = Duck("唐老鸭")# 测试继承和多态 animal_chorus([dog, duck])# 测试多继承 print(duck.fly) # 我可以飞行 print(duck.swim) # 我可以游泳 # 测试方法重写 print(dog.make_sound) # 汪汪汪! print(duck.make_sound) # 嘎嘎嘎!5.3 特殊方法str__和__repr
len__和__getitem
call
运算符重载
上下文管理器协议
class Vector:def __init__(self, x: float, y: float):self.x = xself.y = y# 字符串表示 def __str__(self) -> str:return f"Vector({self.x}, {self.y})"def __repr__(self) -> str:return f"Vector(x={self.x}, y={self.y})"# 运算符重载 def __add__(self, other: 'Vector') -> 'Vector':return Vector(self.x + other.x, self.y + other.y)def __sub__(self, other: 'Vector') -> 'Vector':return Vector(self.x - other.x, self.y - other.y)def __mul__(self, scalar: float) -> 'Vector':return Vector(self.x * scalar, self.y * scalar)# 可调用对象 def __call__(self) -> float:return (self.x ** 2 + self.y ** 2) ** 0.5 # 返回向量长度 class MathList:def __init__(self, data: List[int]):self.data = data# 长度 def __len__(self) -> int:return len(self.data)# 索引访问 def __getitem__(self, index: int) -> int:return self.data[index]# 切片支持 def __setitem__(self, index: int, value: int) -> None:self.data[index] = valueclass FileManager:def __init__(self, filename: str):self.filename = filename# 上下文管理器协议 def __enter__(self):print(f"打开文件:{self.filename}")self.file = open(self.filename, 'w', encoding='utf-8')return self.filedef __exit__(self, exc_type, exc_val, exc_tb):print(f"关闭文件:{self.filename}")if self.file:self.file.closereturn False # 返回 False 则异常会继续传播 # 使用示例 if __name__ == "__main__":# 测试 Vector 类 v1 = Vector(1, 2)v2 = Vector(3, 4)print(str(v1)) # Vector(1, 2) print(repr(v2)) # Vector(x=3, y=4) v3 = v1 + v2 # 运算符重载 print(v3) # Vector(4, 6) length = v1 # 调用对象 print(f"向量长度:{length}") # 向量长度:2.236... # 测试 MathList 类 numbers = MathList([1, 2, 3, 4, 5])print(len(numbers)) # 5 print(numbers[2]) # 3 numbers[2] = 10print(numbers[2]) # 10 # 测试文件管理器 try:with FileManager('test.txt') as f:f.write('测试上下文管理器')raise Exception("测试异常")except Exception as e:print(f"捕获到异常:{e}")本教程涵盖了 Python 编程的基础概念和实践应用。
通过学习这些内容,你应该能够:
理解 Python 的基本语法和数据类型
掌握函数编程的核心概念
熟练使用 Python 的内置数据结构
进行基本的文件操作和错误处理
继续学习和实践的建议:
动手练习每个代码示例
尝试修改和扩展示例代码
开始编写自己的小项目
祝你在 Python 编程的道路上取得进步!
来源:星辰科技圈