附录B-Python快速参考手册

基础语法

变量赋值

x =10# 整数 y =3.14# 浮点数 name ="Python"# 字符串 is_true =True# 布尔值# 多重赋值 a, b, c =1,2,3 x = y = z =0# 交换变量 a, b = b, a 

输入输出

# 输出print("Hello")print("Hello","World")print(f"x={x}, y={y}")# 输入 name =input("请输入姓名:") age =int(input("请输入年龄:"))

注释

# 单行注释""" 多行注释 或文档字符串 """

数据类型

类型转换速查表

函数说明示例
int()转整数int(“123”) → 123
float()转浮点数float(“3.14”) → 3.14
str()转字符串str(123) → “123”
bool()转布尔值bool(0) → False
list()转列表list(“abc”) → [‘a’,‘b’,‘c’]
tuple()转元组tuple([1,2]) → (1,2)
set()转集合set([1,2,2]) → {1,2}

类型判断

type(x)# 查看类型isinstance(x,int)# 判断类型

运算符

算术运算符

+# 加法:5 + 3 = 8-# 减法:5 - 3 = 2*# 乘法:5 * 3 = 15/# 除法:5 / 2 = 2.5//# 整除:5 // 2 = 2%# 取余:5 % 2 = 1**# 幂运算:2 ** 3 = 8

比较运算符

==# 等于!=# 不等于># 大于<# 小于>=# 大于等于<=# 小于等于

逻辑运算符

and# 与or# 或not# 非# 示例if age >18and age <60:print("成年")

控制流程

条件语句

# ifif condition:# 代码# if-elseif condition:# 代码else:# 代码# if-elif-elseif condition1:# 代码elif condition2:# 代码else:# 代码# 三元表达式 result = value1 if condition else value2 

循环语句

# for循环for i inrange(5):# 0,1,2,3,4print(i)for i inrange(1,6):# 1,2,3,4,5print(i)for i inrange(0,10,2):# 0,2,4,6,8print(i)# while循环while condition:# 代码# break和continuefor i inrange(10):if i ==5:break# 退出循环if i ==3:continue# 跳过本次print(i)

数据结构

列表(List)

创建
lst =[]# 空列表 lst =[1,2,3,4,5]# 直接创建 lst =list(range(5))# [0,1,2,3,4]
常用方法
lst.append(x)# 末尾添加 lst.insert(i, x)# 指定位置插入 lst.remove(x)# 删除元素 lst.pop()# 删除并返回末尾元素 lst.pop(i)# 删除并返回指定位置 lst.clear()# 清空列表 lst.index(x)# 查找元素位置 lst.count(x)# 统计元素出现次数 lst.sort()# 排序 lst.reverse()# 反转len(lst)# 长度
切片
lst[0]# 第一个元素 lst[-1]# 最后一个元素 lst[1:4]# 索引1到3 lst[:3]# 前3个 lst[3:]# 从索引3到末尾 lst[::2]# 每隔一个 lst[::-1]# 反转
列表推导式
[x**2for x inrange(5)]# [0,1,4,9,16][x for x inrange(10)if x %2==0]# [0,2,4,6,8]

字典(Dict)

创建
d ={}# 空字典 d ={"name":"Alice","age":25}# 直接创建 d =dict(name="Alice", age=25)# 使用dict()
常用方法
d["key"]# 获取值(不存在会报错) d.get("key")# 获取值(不存在返回None) d.get("key", default)# 获取值(不存在返回默认值) d["key"]= value # 设置值 d.keys()# 所有键 d.values()# 所有值 d.items()# 所有键值对 d.pop("key")# 删除并返回 d.update(other_dict)# 更新"key"in d # 判断键是否存在
字典推导式
{x: x**2for x inrange(5)}# {0:0, 1:1, 2:4, 3:9, 4:16}

元组(Tuple)

t =()# 空元组 t =(1,)# 单元素元组(注意逗号) t =(1,2,3)# 多元素元组 t =1,2,3# 也可以不加括号# 元组不可修改,但可以访问 t[0]# 第一个元素

集合(Set)

创建
s =set()# 空集合 s ={1,2,3}# 直接创建 s =set([1,2,2,3])# {1,2,3}(自动去重)
常用方法
s.add(x)# 添加元素 s.remove(x)# 删除元素 s.discard(x)# 删除元素(不存在不报错) s1 | s2 # 并集 s1 & s2 # 交集 s1 - s2 # 差集

函数

函数定义

# 基本函数deffunc_name(param):"""文档字符串"""return result # 默认参数deffunc(a, b=10):return a + b # 可变参数deffunc(*args,**kwargs):print(args)# 元组print(kwargs)# 字典# Lambda函数 f =lambda x: x**2

常用内置函数

函数说明示例
len()长度len([1,2,3]) → 3
max()最大值max([1,2,3]) → 3
min()最小值min([1,2,3]) → 1
sum()求和sum([1,2,3]) → 6
abs()绝对值abs(-5) → 5
round()四舍五入round(3.14, 1) → 3.1
sorted()排序sorted([3,1,2]) → [1,2,3]
range()范围range(5) → 0,1,2,3,4
enumerate()枚举enumerate([‘a’,‘b’])
zip()打包zip([1,2],[‘a’,‘b’])
map()映射map(str,[1,2,3])
filter()过滤filter(lambda x:x>0,[1,-1,2])

文件操作

读文件

# 读取全部withopen("file.txt","r", encoding="utf-8")as f: content = f.read()# 按行读取withopen("file.txt","r", encoding="utf-8")as f:for line in f:print(line.strip())# 读取所有行withopen("file.txt","r", encoding="utf-8")as f: lines = f.readlines()

写文件

# 写入(覆盖)withopen("file.txt","w", encoding="utf-8")as f: f.write("Hello\n")# 追加withopen("file.txt","a", encoding="utf-8")as f: f.write("World\n")

文件模式

模式说明
r只读
w写入(覆盖)
a追加
r+读写
rb二进制读取
wb二进制写入

异常处理

基本语法

try:# 可能出错的代码 x =int(input())except ValueError:# 处理ValueErrorprint("输入错误")except Exception as e:# 处理其他异常print(f"错误:{e}")else:# 没有异常时执行print("成功")finally:# 无论如何都执行print("结束")

常见异常

异常说明
ValueError值错误
TypeError类型错误
IndexError索引错误
KeyError键错误
FileNotFoundError文件不存在
ZeroDivisionError除零错误
AttributeError属性错误

面向对象

类定义

classClassName:"""类的文档字符串"""# 类变量 class_var ="shared"# 构造方法def__init__(self, param): self.instance_var = param # 实例方法defmethod(self):return self.instance_var # 类方法@classmethoddefclass_method(cls):return cls.class_var # 静态方法@staticmethoddefstatic_method(x):return x *2# 创建对象 obj = ClassName("value")

继承

classParent:def__init__(self, name): self.name = name classChild(Parent):def__init__(self, name, age):super().__init__(name)# 调用父类构造方法 self.age = age 

常用特殊方法

方法说明
__init__构造方法
__str__字符串表示
__repr__官方字符串表示
__len__长度
__getitem__索引访问
__setitem__索引赋值
__call__对象可调用

常用模块

时间日期

from datetime import datetime, date, timedelta # 当前时间 now = datetime.now() today = date.today()# 格式化 now.strftime("%Y-%m-%d %H:%M:%S")# 时间计算 tomorrow = today + timedelta(days=1)

随机数

import random random.random()# 0-1随机浮点数 random.randint(1,10)# 1-10随机整数 random.choice([1,2,3])# 随机选择 random.shuffle(lst)# 打乱列表

JSON

import json # 转JSON字符串 json_str = json.dumps(data, ensure_ascii=False, indent=4)# 解析JSON data = json.loads(json_str)# 读写文件withopen("data.json","w")as f: json.dump(data, f)withopen("data.json","r")as f: data = json.load(f)

正则表达式

import re re.search(pattern, string)# 搜索 re.match(pattern, string)# 从开头匹配 re.findall(pattern, string)# 查找所有 re.sub(pattern, repl, string)# 替换

路径操作

from pathlib import Path p = Path("folder/file.txt") p.exists()# 是否存在 p.is_file()# 是否是文件 p.is_dir()# 是否是目录 p.read_text()# 读取文本 p.write_text("content")# 写入文本 p.parent # 父目录 p.name # 文件名 p.stem # 文件名(不含扩展名) p.suffix # 扩展名

字符串方法速查

s ="Hello World" s.lower()# 转小写 s.upper()# 转大写 s.strip()# 去除两端空白 s.split()# 分割成列表 s.replace("old","new")# 替换 s.startswith("He")# 是否以...开头 s.endswith("ld")# 是否以...结尾 s.find("o")# 查找位置(找不到返回-1) s.index("o")# 查找位置(找不到报错) s.count("l")# 统计出现次数 s.isdigit()# 是否全是数字 s.isalpha()# 是否全是字母

推导式速查

# 列表推导式[x**2for x inrange(5)][x for x inrange(10)if x %2==0]# 字典推导式{x: x**2for x inrange(5)}# 集合推导式{x**2for x inrange(5)}# 生成器表达式(注意是小括号)(x**2for x inrange(5))

快速记忆技巧

数据结构选择

  • 列表:有序、可重复、可修改 → 用[]
  • 元组:有序、可重复、不可修改 → 用()
  • 字典:键值对映射 → 用{}带冒号
  • 集合:无序、不重复 → 用{}不带冒号

常见操作

# 判断存在 x in lst # 列表 key indict# 字典 x inset# 集合# 获取长度len(lst)# 列表len(dict)# 字典len(set)# 集合len(str)# 字符串# 遍历for item in lst:# 列表for key indict:# 字典(遍历键)for key, value indict.items():# 字典(键值对)

调试技巧

# 打印调试print(f"变量x的值:{x}")print(f"变量类型:{type(x)}")# 查看对象所有属性和方法dir(obj)# 查看帮助help(function)# 断言assert condition,"错误信息"

Read more

五大经典排序算法:插入、希尔、冒泡、选择、堆排序全攻略

五大经典排序算法:插入、希尔、冒泡、选择、堆排序全攻略

目录 --------------插入排序------------- 1、插入排序思想 2、示例代码 3、效率分析 --------------希尔排序------------- 1、希尔排序思想 2、示例代码 3、效率分析 --------------选择排序------------- 1、选择排序思想 2、示例代码 3、效率分析 ---------------堆排序-------------- 1、堆排序思想 2、示例代码 3、效率分析 --------------冒泡排序------------- 1、冒泡排序思想 2、示例代码 3、效率分析 上述五大排序性能对比: --------------插入排序------------- 1、插入排序思想 插入排序的核心思想是逐步构建有序序列: 将数组分为 “已排序” 和 “未排序” 两部分,初始时已排序部分只包含第一个元素。 每次从未排序部分取出第一个元素,将其向前插入到已排序序列中的正确位置,使得插入后的序列依然保持有序。

By Ne0inhk
《算法闯关指南:优选算法--模拟》--43.数青蛙

《算法闯关指南:优选算法--模拟》--43.数青蛙

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 43. 数青蛙 * 解法(模拟+分情况讨论): * 算法思路: * C++算法代码: * 算法总结&&笔记展示: * 结尾: 前言: 聚焦算法题实战,系统讲解三大核心板块:优选算法:剖析动态规划、二分法等高效策略,学会寻找“最优解”。 递归与回溯:掌握问题分解与状态回退,攻克组合、排列等难题。 贪心算法:理解“局部最优”到“全局最优”的思路,解决区间调度等问题 内容以题带点,讲解思路与代码实现,帮助大家快速提升代码能力。 43. 数青蛙

By Ne0inhk
数据结构—顺序表

数据结构—顺序表

数据结构—顺序表 * 线性表 * 顺序表 * 概念与结构 * 顺序表和数组区别 * 分类 * 静态顺序表 * 动态顺序表 * 动态顺序表模拟实现 * 定义动态顺序表结构 * 顺序表初始化 * 顺序表销毁 * 顺序表打印 * 顺序表动态扩容 * 尾插 * 头插 * 尾删 * 头删 * 查找 * 指定位置之前插入 * 删除pos位置的数据 * 竞赛中的静态顺序表 * 静态申请数组 * 封装静态顺序表 * 动态顺序表--vector * 创建vector * size / empty * begin / end * push_back / pop_back * front / back * resize * clear * insert / erase * 仓库—代码总结 线性表 线性表(linear list)是

By Ne0inhk

解锁3大核心能力:StockSharp算法交易平台实战指南

解锁3大核心能力:StockSharp算法交易平台实战指南 【免费下载链接】StockSharpAlgorithmic trading and quantitative trading open source platform to develop trading robots (stock markets, forex, crypto, bitcoins, and options). 项目地址: https://gitcode.com/gh_mirrors/st/StockSharp 在高频交易与量化投资领域,能否快速捕捉市场微观结构变化直接决定策略成败。StockSharp作为开源算法交易平台,提供股票、外汇、加密货币等多市场接入能力,通过OrderLog订单日志与Level2深度行情数据的深度挖掘,帮助开发者构建超越传统K线分析的下一代交易系统。本文将从价值定位、核心原理、实战案例到工具生态,全面解析StockSharp如何赋能量化交易创新。 定位量化交易新范式:为什么选择StockSharp? 你是否遇到过这些交易痛点:传统行情软件延迟高达数百毫秒?策略回测缺乏微观订

By Ne0inhk