微信登录

python入门基础教程

以下是一份针对Python初学者的50个小知识点集合,内容涵盖基础语法、实用技巧和20年版本更迭中的精华总结(基于Python 3.6+版本):


基础语法篇

  1. 缩进即结构:Python用缩进代替大括号,4个空格是PEP8推荐标准。

    1. if True:
    2. print("缩进是语法的一部分")
  2. 动态类型:变量无需声明类型,赋值即定义。

    1. x = 10 # 自动识别为int
    2. x = "Hello" # 自动变为str
  3. 字符串乘法:用*重复字符串。

    1. print("Ha" * 3) # 输出HaHaHa
  4. 三引号跨行字符串:保留格式的多行文本。

    1. text = """第一行
    2. 第二行"""
  5. 列表切片list[start:end:step],支持负数索引。

    1. nums = [0,1,2,3,4]
    2. print(nums[1:4]) # [1,2,3]
    3. print(nums[::-1]) # 逆序

高效操作技巧

  1. 列表推导式:快速生成列表。

    1. squares = [x**2 for x in range(10)]
  2. 交换变量:无需中间变量。

    1. a, b = 1, 2
    2. a, b = b, a
  3. 链式比较:数学式写法。

    1. if 1 < x < 10:
    2. print("链式比较成立")
  4. enumerate迭代索引:同时获取索引和值。

    1. for i, value in enumerate(['a','b','c']):
    2. print(i, value)
  5. zip合并迭代器:并行遍历多个序列。

    1. names = ["Alice", "Bob"]
    2. ages = [25, 30]
    3. for name, age in zip(names, ages):
    4. print(name, age)

函数与作用域

  1. 默认参数陷阱:避免使用可变对象作为默认参数。

    1. # 错误示例
    2. def func(a, lst=[]):
    3. lst.append(a)
    4. return lst
    5. # 正确做法
    6. def func(a, lst=None):
    7. lst = lst or []
    8. lst.append(a)
    9. return lst
  2. 可变参数*args和`kwargs`**:

    1. def example(a, *args, **kwargs):
    2. print(a, args, kwargs)
    3. example(1, 2, 3, name="John")
  3. Lambda匿名函数:简单函数单行实现。

    1. multiply = lambda x, y: x * y
  4. 闭包与作用域:函数捕获外部变量。

    1. def outer():
    2. x = 10
    3. def inner():
    4. print(x) # 访问外部变量
    5. return inner

数据结构进阶

  1. 字典快速合并:Python 3.5+的**语法。

    1. dict1 = {'a':1}
    2. dict2 = {'b':2}
    3. merged = {**dict1, **dict2}
  2. 集合去重:利用集合特性过滤重复项。

    1. unique = list(set([1,2,2,3])) # [1,2,3]
  3. 默认字典defaultdict:处理缺失键。

    1. from collections import defaultdict
    2. dd = defaultdict(list)
    3. dd['key'].append(1) # 自动初始化空列表
  4. 元组拆包:多变量赋值更简洁。

    1. point = (3, 4)
    2. x, y = point

文件与IO

  1. with自动关闭文件:防止资源泄露。

    1. with open('file.txt', 'r') as f:
    2. content = f.read()
  2. 读写JSON数据

    1. import json
    2. data = {'name': 'John'}
    3. # 写入
    4. with open('data.json', 'w') as f:
    5. json.dump(data, f)
    6. # 读取
    7. with open('data.json', 'r') as f:
    8. data = json.load(f)

错误处理

  1. 捕获特定异常:避免裸except

    1. try:
    2. 1 / 0
    3. except ZeroDivisionError as e:
    4. print(f"Error: {e}")
  2. else子句:try中没有异常时执行。

    1. try:
    2. result = 10 / 2
    3. except:
    4. print("Error")
    5. else:
    6. print("结果是", result)
  3. finally清理资源:无论是否异常都执行。

    1. try:
    2. file = open('test.txt')
    3. finally:
    4. file.close()

模块与库

  1. __name__的作用:模块作为脚本或导入时区别运行。

    1. if __name__ == '__main__':
    2. print('直接执行时运行')
  2. 安装第三方库:使用pip

    1. pip install requests
  3. 虚拟环境venv:隔离项目依赖。

    1. python -m venv myenv
    2. source myenv/bin/activate # Linux/Mac
    3. myenv\Scripts\activate.bat # Windows

隐藏特性

  1. 循环中的else:循环未被break打断时执行。

    1. for i in range(5):
    2. if i == 10:
    3. break
    4. else:
    5. print("循环正常结束")
  2. 解压序列赋值:批量赋值给多个变量。

    1. a, *b, c = [1,2,3,4] # a=1, b=[2,3], c=4
  3. 海象运算符:=(Python 3.8+):表达式内赋值。

    1. if (n := len([1,2,3])) > 2:
    2. print(n)
  4. f-string格式化:更简洁的字符串插值(Python 3.6+)。

    1. name = "Alice"
    2. print(f"Hello {name}!")

高效编程习惯

  1. 使用生成器节省内存(x for x in range(10))
  2. is==的区别is比较对象ID,==比较值。
  3. 浅拷贝与深拷贝copy.copy() vs copy.deepcopy()
  4. 装饰器实现AOP:增强函数功能。
    1. def decorator(func):
    2. def wrapper():
    3. print("Before")
    4. func()
    5. print("After")
    6. return wrapper
    7. @decorator
    8. def say_hello():
    9. print("Hello")
  5. 类型提示(Type Hints):提高代码可读性(Python 3.5+)。
    1. def greet(name: str) -> str:
    2. return f"Hello {name}"

性能优化

  1. 优先使用局部变量:局部变量访问更快。
  2. 避免+=拼接字符串:使用str.join()提高效率。
  3. 使用in检查成员存在性if key in dict比遍历快。
  4. sys模块查看递归深度:默认限制1000层。
    1. import sys
    2. print(sys.getrecursionlimit())

其他实用工具

  1. pdb调试器:命令行调试工具。
    1. import pdb; pdb.set_trace()
  2. 时间测量timeit模块计算代码执行时间。
  3. 生成随机数
    1. import random
    2. print(random.randint(1,10)) # 1-10随机整数
  4. 命令行参数sys.argv获取。
    1. import sys
    2. print("脚本名:", sys.argv[0])
  5. 列表逆序复制new_list = old_list[::-1]
  6. 字典键视图dict.keys()返回动态视图。

版本差异

  1. Python 2 vs 3:最明显变化是print函数和除法行为。
  2. 整除运算符:Python 3中/是浮点除,//是整除。
  3. @矩阵乘法符:Python 3.5+新增运算符。
  4. async/await语法:Python 3.5+支持协程。
  5. 数据类dataclass:Python 3.7+简化类定义。
    1. from dataclasses import dataclass
    2. @dataclass
    3. class Point:
    4. x: int
    5. y: int

这些知识点从基础到进阶,覆盖了Python编程的核心概念和实用技巧,帮助新手避开常见陷阱,写出更优雅高效的代码。配合实践练习效果更佳!