网上的量化策略代码层出不穷,但大多聚焦于策略逻辑的实现,很少有教程结合 PTrade 工具,从 Python 底层语法原理讲起。如果只会复制粘贴策略代码,不理解语法规则,遇到需求调整、bug 排查时就会无从下手。

授人以鱼不如授人以渔。本系列将以 PTrade 为实践载体,循序渐进带你吃透 Python 核心语法,让你不仅能读懂策略逻辑,更能自主修改、编写量化策略。

本篇作为系列开篇,我们先从 Python 最基础也最容易踩坑的三条语法铁律讲起 ——缩进、顺序、标点,违反任意一条都会导致程序直接崩溃。

一、缩进:Python 的语法生死线

在 C、Java 等语言中,代码缩进只是优化可读性的排版手段,但在 Python 中,缩进是强制的语法规则,是划分代码块的唯一标识。它就像乐高积木的拼接凸起,错位一块就会导致整个结构崩溃。

核心规则

  • Python 官方标准为 4 个空格 作为一级缩进
  • 同一层级的代码,缩进空格数必须完全一致
  • 函数、判断、循环等结构,冒号后的下一行必须缩进

正确示例

def 真正的勇士():
    # 统一缩进4个空格,层级一致
    print("缩进四个空格,正常运行")
    print("同层级代码对齐无误")

错误示例

def 真正的勇士():
    print("缩进四个空格")
  print("缩进三个空格")  # 缩进不一致,触发报错

运行后会直接抛出 IndentationError 错误,程序终止执行。

二、顺序执行:代码世界的运行法则

Python 解释器始终遵循从上到下、逐行执行的逻辑,如同严格按清单办事的管家,不会跳过也不会调换顺序。调整代码的先后顺序,运行结果可能会完全不同。

顺序对比示例

# 顺序1
print("先喝奶茶")
print("再写代码")

输出结果:

先喝奶茶
再写代码

# 顺序2
print("再写代码")
print("先喝奶茶")

输出结果:

再写代码
先喝奶茶

重要提示:变量、函数必须遵循先定义、后使用的原则。如果在定义前就调用变量或函数,会触发 NameError 报错。

三、标点刺客:中文符号的致命陷阱

中文标点是 Python 新手最高发的错误来源。Python 解释器仅识别英文标点,只要出现中文引号、逗号、括号、感叹号等符号,就会直接报语法错误。

错误示例(中文符号)

print(“Hello world!”)  # 括号、引号、感叹号均为中文,直接报错

报错信息:

SyntaxError: invalid character '“' (U+201C)

正确示例(英文标点)

print("英文双引号安全")
print('英文单引号也可以')
print("逗号, 句点. 全部使用英文符号")

输出结果:

英文双引号安全
英文单引号也可以
逗号, 句点. 全部使用英文符号

实操建议:编写代码时请保持输入法为英文状态,一个中文逗号就足以让整个策略脚本无法运行。

常见语法错误总结

报错类型 核心原因 正确规范 常见错误行为
IndentationError 缩进格式不合法 统一使用 4 个空格缩进,同层级代码严格对齐 缩进空格数不一致、代码块漏缩进
NameError 名称未定义就使用 先定义变量 / 函数,后进行调用 未赋值就使用变量、未定义就调用函数
SyntaxError 语法格式错误 全程使用英文标点,保证符号配对完整 使用中文标点、引号 / 括号不闭合

写在最后

以上就是 Python 入门必须严守的三条语法铁律,也是在 PTrade 中编写量化策略最容易踩的基础坑。建议大家打开 PTrade 亲手敲一遍示例代码,亲手验证正确与错误的运行差异,把基础语法规范养成习惯。

后续我们将继续结合 PTrade 讲解 Python 数据类型与基础操作,欢迎持续关注。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐