跳到主要内容
Python AI 算法
Python 语法速览与实战清单 涵盖 Python 基础语法、数据类型、控制流、函数、面向对象编程及常用库的使用。内容包括控制台交互、模块管理、字符串处理、正则表达式、集合操作、文件读写、网络请求及数据库连接等实战场景,适合初学者快速掌握核心知识点。
星星泡饭 发布于 2025/2/6 更新于 2026/6/2 19 浏览前言
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 可以为某个目录下所有的文件设置统一入口:
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
result = (false_val, true_val)[condition]
循环遍历 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' )
float ('10.5' )
str (10 )
x = 10
y = 10.5
z = 1 + 2j
布尔类型 Python 提供了常见的逻辑操作符,不过需要注意的是 Python 中并没有使用 &&、|| 等,而是直接使用了英文单词。
True and False
True or False
not True
String: 字符串 Python 2 中支持 Ascii 码的 str() 类型,独立的 unicode() 类型,没有 byte 类型;而 Python 3 中默认的字符串为 utf-8 类型,并且包含了 byte 与 bytearray 两个字节类型。
Python 字符串支持分片、模板字符串等常见操作:
s = "Hello World"
s[0 :5 ]
s.upper()
f"Value is {1 +1 } "
如果需要判断是否包含某个子字符串,或者搜索某个字符串的下标:
"World" in s
s.find("World" )
Regex: 正则表达式 import re
pattern = r'\d+'
text = 'Phone: 123456'
re.search(pattern, text).group()
集合类型
List: 列表 lst = [1 , 2 , 3 ]
lst.append(4 )
lst.extend([5 , 6 ])
可以使用 pop、slices、del、remove 等移除列表中元素:
lst.pop()
lst.remove(1 )
del lst[0 ]
Iteration: 索引遍历 你可以使用基本的 for 循环来遍历数组中的元素:
for i, val in enumerate (lst):
print (i, val)
Comprehensions: 变换 Python 中同样可以使用 map、reduce、filter,map 用于变换数组:
list (map (lambda x: x*2 , [1 , 2 , 3 ]))
from functools import reduce
reduce(lambda x, y: x+y, [1 , 2 , 3 , 4 ])
list (filter (lambda x: x>2 , [1 , 2 , 3 , 4 ]))
字典类型
创建增删 d = {'a' : 1 , 'b' : 2 }
d['c' ] = 3
d1 = {'a' : 1 }
d2 = {'b' : 2 }
d1.update(d2)
索引遍历 for k, v in d.items():
print (k, v)
其他序列类型
函数
函数定义 Python 中的函数使用 def 关键字进行定义,譬如:
def greet (name ):
return f"Hello, {name} "
Python 支持运行时创建动态函数,也即是所谓的 lambda 函数:
参数 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" )
类与对象
类定义 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__
对象 Python 中对象的属性不同于字典键,可以使用点运算符取值,直接使用 in 判断会存在问题:
hasattr (obj, 'value' )
getattr (obj, 'value' )
setattr (obj, 'value' , 20 )
异常与测试
异常处理 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' )
复杂格式文件 import json
data = {'key' : 'value' }
json_str = json.dumps(data)
parsed = json.loads(json_str)
我们可以使用 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 查找的结果是数组,并且在包含命名空间的情况下,需要指定命名空间:
lxml 提供了 insert、append 等方法进行元素操作:
new_elem = etree.Element('new' )
root.append(new_elem)
可以使用 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 核心语法及常用库的实战用法。
相关免费在线工具 加密/解密文本 使用加密算法(如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