跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 语法速览与实战清单

涵盖 Python 基础语法、数据类型、控制流、函数、面向对象编程及常用库的使用。内容包括控制台交互、模块管理、字符串处理、正则表达式、集合操作、文件读写、网络请求及数据库连接等实战场景,适合初学者快速掌握核心知识点。

星星泡饭发布于 2025/2/6更新于 2026/6/219 浏览
Python 语法速览与实战清单

前言

Python 是一门高阶、动态类型的多范式编程语言。定义 Python 文件的时候,我们往往会先声明文件编码方式。

人生苦短,请用 Python。大量功能强大的语法糖让很多时候 Python 代码看上去有点像伪代码。譬如我们用 Python 实现的简易的快排相较于 Java 会显得很短小精悍。

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

控制台交互

可以根据 name 关键字来判断是否是直接使用 python 命令执行某个脚本,还是外部引用。Google 开源的 fire 也是不错的快速将某个类封装为命令行工具的框架。

Python 2 中 print 是表达式,而 Python 3 中 print 是函数。如果希望在 Python 2 中将 print 以函数方式使用,则需要自定义引入:

from __future__ import print_function

我们也可以使用 pprint 来美化控制台输出内容:

import pprint
pprint.pprint({'key': 'value', 'list': [1, 2, 3]})

模块

Python 中的模块(Module)即是 Python 源码文件,其可以导出类、函数与全局变量;当我们从某个模块导入变量时,函数名往往就是命名空间(Namespace)。而 Python 中的包(Package)则是模块的文件夹,往往由 __init__.py 指明某个文件夹为包。

Package 可以为某个目录下所有的文件设置统一入口:

# package/__init__.py
from .module_a import func_a
from .module_b  func_b
import

表达式与控制流

条件选择

Python 中使用 if、elif、else 来进行基础的条件选择操作:

if condition:
    pass
elif other_condition:
    pass
else:
    pass

Python 同样支持三元条件运算符 (ternary conditional operator):

result = a if condition else b

也可以使用 Tuple 来实现类似的效果:

result = (false_val, true_val)[condition]

循环遍历

for-in 可以用来遍历数组与字典:

my_list = [1, 2, 3]
for item in my_list:
    print(item)

my_dict = {'a': 1, 'b': 2}
for key, value in my_dict.items():
    print(key, value)

如果我们希望使用数字序列进行遍历,可以使用 Python 内置的 range 函数:

for i in range(5):
    print(i)

基本数据类型

可以使用内建函数进行强制类型转换(Casting):

int('10')      # 10
float('10.5')  # 10.5
str(10)        # '10'

Number: 数值类型

x = 10         # int
y = 10.5       # float
z = 1 + 2j     # complex

布尔类型

Python 提供了常见的逻辑操作符,不过需要注意的是 Python 中并没有使用 &&、|| 等,而是直接使用了英文单词。

True and False  # False
True or False   # True
not True        # False

String: 字符串

Python 2 中支持 Ascii 码的 str() 类型,独立的 unicode() 类型,没有 byte 类型;而 Python 3 中默认的字符串为 utf-8 类型,并且包含了 byte 与 bytearray 两个字节类型。

Python 字符串支持分片、模板字符串等常见操作:

s = "Hello World"
s[0:5]           # 'Hello'
s.upper()        # 'HELLO WORLD'
f"Value is {1+1}" # 'Value is 2'

如果需要判断是否包含某个子字符串,或者搜索某个字符串的下标:

"World" in s     # True
s.find("World")  # 6

Regex: 正则表达式

下面列举了常见的表达式使用场景:

import re
pattern = r'\d+'
text = 'Phone: 123456'
re.search(pattern, text).group()  # '123456'

集合类型

List: 列表

Operation: 创建增删

list 是基础的序列类型:

lst = [1, 2, 3]
lst.append(4)          # [1, 2, 3, 4]
lst.extend([5, 6])     # [1, 2, 3, 4, 5, 6]

可以使用 pop、slices、del、remove 等移除列表中元素:

lst.pop()              # 移除最后一个
lst.remove(1)          # 移除值为 1 的元素
del lst[0]             # 删除索引 0 的元素
Iteration: 索引遍历

你可以使用基本的 for 循环来遍历数组中的元素:

for i, val in enumerate(lst):
    print(i, val)

Python 也支持切片(Slices):

lst[1:3]               # 获取索引 1 到 2 的元素
lst[::-1]              # 反转列表
Comprehensions: 变换

Python 中同样可以使用 map、reduce、filter,map 用于变换数组:

list(map(lambda x: x*2, [1, 2, 3]))  # [2, 4, 6]

reduce 用于进行归纳计算:

from functools import reduce
reduce(lambda x, y: x+y, [1, 2, 3, 4])  # 10

filter 则可以对数组进行过滤:

list(filter(lambda x: x>2, [1, 2, 3, 4]))  # [3, 4]

字典类型

创建增删
d = {'a': 1, 'b': 2}
d['c'] = 3

如果需要合并两个或者多个字典类型:

d1 = {'a': 1}
d2 = {'b': 2}
d1.update(d2)  # {'a': 1, 'b': 2}
索引遍历

可以根据键来直接进行元素访问:

d.get('a')     # 1
d['a']         # 1

可以使用 for-in 来遍历数组:

for k, v in d.items():
    print(k, v)
其他序列类型

集合

s = {1, 2, 3}
s.add(4)

函数

函数定义

Python 中的函数使用 def 关键字进行定义,譬如:

def greet(name):
    return f"Hello, {name}"

Python 支持运行时创建动态函数,也即是所谓的 lambda 函数:

add = lambda x, y: x + y
参数

Option Arguments: 不定参数

def func(*args, **kwargs):
    print(args, kwargs)
生成器
def gen():
    yield 1
    yield 2

装饰器

装饰器是非常有用的设计模式:

def my_decorator(func):
    def wrapper():
        print("Before")
        func()
        print("After")
    return wrapper

@my_decorator
def say_hello():
    print("Hello")

类与对象

类定义

Python 中对于类的定义也很直接:

class MyClass:
    def __init__(self, value):
        self.value = value
Managed Attributes: 受控属性
class Person:
    @property
    def name(self):
        return self._name
    
    @name.setter
    def name(self, value):
        self._name = value
类方法与静态方法
class Math:
    @staticmethod
    def add(x, y):
        return x + y
    
    @classmethod
    def info(cls):
        return cls.__name__
对象

实例化

obj = MyClass(10)

属性操作

Python 中对象的属性不同于字典键,可以使用点运算符取值,直接使用 in 判断会存在问题:

hasattr(obj, 'value')  # True
getattr(obj, 'value')  # 10
setattr(obj, 'value', 20)

异常与测试

异常处理

Context Manager - with

with 常用于打开或者关闭某些资源:

try:
    with open('file.txt', 'r') as f:
        content = f.read()
except FileNotFoundError:
    print("File not found")
单元测试
import unittest

class TestMath(unittest.TestCase):
    def test_add(self):
        self.assertEqual(Math.add(1, 2), 3)

存储

文件读写

路径处理

Python 内置的 file 关键字会指向当前文件的相对路径,可以根据它来构造绝对路径,或者索引其他文件:

import os
os.path.abspath(__file__)

可以使用 listdir、walk、glob 模块来进行文件枚举与检索:

import glob
files = glob.glob('*.txt')
简单文件读写
with open('test.txt', 'w') as f:
    f.write('Hello World')
复杂格式文件

JSON

import json
data = {'key': 'value'}
json_str = json.dumps(data)
parsed = json.loads(json_str)

XML

我们可以使用 lxml 来解析与处理 XML 文件,本部分即对其常用操作进行介绍。lxml 支持从字符串或者文件中创建 Element 对象:

from lxml import etree
root = etree.fromstring('<root><child/></root>')

其提供了迭代器以对所有元素进行遍历:

for child in root.iter():
    print(child.tag)

lxml 支持以 XPath 查找元素,不过需要注意的是,XPath 查找的结果是数组,并且在包含命名空间的情况下,需要指定命名空间:

root.xpath('//child')

lxml 提供了 insert、append 等方法进行元素操作:

new_elem = etree.Element('new')
root.append(new_elem)

Excel

可以使用 xlrd 来读取 Excel 文件,使用 xlsxwriter 来写入与操作 Excel 文件。

文件系统

对于高级的文件操作,我们可以使用 Python 内置的 shutil:

import shutil
shutil.copy('src.txt', 'dst.txt')

网络交互

Requests

Requests 是优雅而易用的 Python 网络请求库:

import requests
response = requests.get('https://api.example.com')
print(response.status_code)

数据存储

MySQL
import pymysql
conn = pymysql.connect(host='localhost', user='user', password='pass', db='db')
cursor = conn.cursor()
cursor.execute('SELECT * FROM table')

以上涵盖了 Python 核心语法及常用库的实战用法。

目录

  1. 前言
  2. 控制台交互
  3. 模块
  4. package/init.py
  5. 表达式与控制流
  6. 条件选择
  7. 循环遍历
  8. 基本数据类型
  9. 布尔类型
  10. String: 字符串
  11. Regex: 正则表达式
  12. 集合类型
  13. List: 列表
  14. Iteration: 索引遍历
  15. Comprehensions: 变换
  16. 字典类型
  17. 创建增删
  18. 索引遍历
  19. 其他序列类型
  20. 函数
  21. 函数定义
  22. 参数
  23. 生成器
  24. 装饰器
  25. 类与对象
  26. 类定义
  27. Managed Attributes: 受控属性
  28. 类方法与静态方法
  29. 对象
  30. 异常与测试
  31. 异常处理
  32. 单元测试
  33. 存储
  34. 文件读写
  35. 简单文件读写
  36. 复杂格式文件
  37. 文件系统
  38. 网络交互
  39. Requests
  40. 数据存储
  41. MySQL
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • jQuery 系列教程 8:插件生态与最佳实践
  • 基于 Windows 环境搭建 OpenClaw 项目部署指南
  • Web 前端基础入门:HTML、CSS 与 JavaScript 核心概览
  • Python OpenCV 调用海康威视工业相机
  • GitHub Copilot 实战:AI 辅助编程效率提升指南
  • PPO-VLA:强化学习如何提升机器人泛化能力
  • VS Code 远程连接服务器后 Github Copilot 无法使用修复方案
  • AIGC 时代如何利用 DeepSeek 辅助孩子学习编程
  • ChatGLM 实战:基于 LangChain 构建私有知识库
  • CFAR 恒虚警率目标检测算法原理与 MATLAB 实现
  • Spring Cloud Gateway 微服务统一入口实战
  • Debian 12 安装 OpenJDK 17 及配置 Tomcat 10.1.26 指定 JDK
  • GitHub Copilot 提示词工程实战:从基础到精通的协作艺术
  • C++ Vector 容器操作与简单实现
  • Docker 本地部署 Dify 实战指南
  • 基于 Rust 实现 GitHub Trending 热门仓库爬取
  • Python 网络爬虫实战:从基础请求到数据可视化
  • AIGC 插画生成技术解析与 Python 实战
  • C++ STL 常用容器使用详解
  • JavaScript 中 var、let、const 的核心区别与实战应用

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online