简体中文
语法参考
PyCN 沿用 Python 的语法结构,只把词汇换成中文。英文关键词同样可用,全角符号和半角符号也可以混用。
本页列出当前解析器实际支持的内容。想直接看可运行的代码,请前往案例。
语句
| PyCN | Python |
|---|---|
定义 函数名(参数): | def name(params): |
类 类名: / 类 类名(基类): | class Name: / class Name(Base): |
如果 条件: / 要不然 条件: / 否则: | if / elif / else |
迭代 变量 在 可迭代对象: | for var in iterable: |
返回 值 / 返回 | return value / return |
跳出 / 继续 / 过 | break / continue / pass |
导入 模块 作为 别名 | import module as alias |
从 模块 导入 名称 作为 别名 | from module import name as alias |
拉姆达 参数:表达式 | lambda params: expression |
@装饰器 / 装饰 装饰器 | @decorator |
变量 赋值为 值 | variable = value |
甲,乙 赋值为 乙,甲 | a, b = b, a |
对象.属性 赋值为 值 | obj.attr = value |
字典【键】赋值为 值 | d[key] = value |
函数参数支持用 *参数 表示 *args,用 **键值对参数 表示 **kwargs;普通参数保留中文名称。
pycn
定义 求和(甲,乙,*参数,**键值对参数):
返回 甲 加 乙关键词
| PyCN | Python | 说明 |
|---|---|---|
定义 | def | 函数定义 |
如果 | if | 条件判断 |
要不然 | elif | 条件判断 |
否则 | else | 条件判断 |
迭代 | for | 支持多个循环变量 |
在 | in | 成员判断 / 循环 |
不是 | not | 一元取反 |
和 | and | 逻辑与 |
或 | or | 逻辑或 |
空 | None | 空值 |
真 | True | 布尔真 |
假 | False | 布尔假 |
返回 | return | 返回值 |
跳出 | break | 跳出循环 |
继续 | continue | 继续下一次循环 |
过 | pass | 占位语句 |
导入 | import | 导入模块 |
从 | from | 从模块导入 |
作为 | as | 起别名 |
类 | class | 类定义 |
拉姆达 | lambda | 匿名函数 |
装饰 | @ | 装饰器 |
以下关键词已经被词法分析器识别,但解析器尚未实现:当(while)、是(is)、尝试 / 意外情况 / 最终(try / except / finally)、举起(raise)、断言(assert)、删除(del)、全局的(global)、非局部(nonlocal)、产出(yield)、等待(await)、异步的(async)、带上(with)、匹配 / 情况(match / case)。
运算符
| PyCN | Python | 说明 |
|---|---|---|
加 | + | 加法 |
减 | - | 减法 |
乘 | * | 乘法 |
除以 | / | 真除法 |
地板除 | // | 地板除法 |
取余 / 取模 | % | 取余 |
取幂 | ** | 幂运算 |
赋值为 | = | 赋值 |
等于 | == | 等于 |
不等于 / != | != | 不等于 |
小于 / 《 | < | 小于 |
小于等于 / 《= | <= | 小于等于 |
大于 / 》 | > | 大于 |
大于等于 / 》= | >= | 大于等于 |
按位与 | & | 按位与 |
按位或 | ` | ` |
按位异或 | ^ | 按位异或 |
按位取反 | ~ | 按位取反(一元) |
左移 | << | 左移 |
右移 | >> | 右移 |
和 | and | 逻辑与 |
或 | or | 逻辑或 |
不是 | not | 逻辑非(一元) |
标点与字面量
中文标点可以省略,同一个文件里也可以混用中英文标点。
| PyCN | Python |
|---|---|
( ) | ( ) |
【 】 | [ ] |
, | , |
: | : |
“…” / ‘…’ | "..." / '...' |
《 》 | 比较运算中的 < > |
!= | != |
花括号 { }、点号 . 和装饰器 @ 仍需使用半角符号。
字面量沿用 Python 的模型:
- 数字可以用阿拉伯数字或中文数字书写:
十二、一百、零点一、负零点五。 - 字符串可以使用英文引号或中文引号,
f字符串使用常见的f"..."形式。 - 列表使用
【】,字典和集合使用{},元组使用()。 真、假、空分别对应True、False、None。
pycn
名字 赋值为 “张三”
成绩 赋值为 【九十,八十五,一百】
信息 赋值为 {"姓名": 名字, "成绩": 成绩}
打印(f"{名字} 的成绩是 {成绩【零】}")内置函数
| PyCN | Python | PyCN | Python |
|---|---|---|---|
打印 | print | 范围 | range |
整数 | int | 小数 | float |
字符串 | str | 输入 | input |
长度 | len | 列表 | list |
字典 | dict | 集合 | set |
元组 | tuple | 索引迭代 | enumerate |
解析 | eval | 求和 | sum |
最小值 | min | 最大值 | max |
绝对值 | abs | 全部为真 | all |
有一个为真 | any | 映射 | map |
过滤 | filter | 拉链 | zip |
打开 | open | 执行 | exec |
类型 | type | 实例判断 | isinstance |
子类判断 | issubclass | 目录 | dir |
变量 | vars | 本地变量 | locals |
全局变量 | globals | 帮助 | help |
编号 | id | 排序 | sorted |
父类 | super | 对象 | object |
类方法 | classmethod | 静态方法 | staticmethod |
属性 | property | 异常 | Exception |
在需要普通名称的位置(例如函数参数),这些内置函数名也可以作为变量名使用。
列表方法
| PyCN | Python | 说明 |
|---|---|---|
列表.添加(元素) | list.append(element) | 在末尾添加元素 |
列表.插入(索引,元素) | list.insert(index, element) | 在指定位置插入 |
列表.移除(元素) | list.remove(element) | 移除第一个匹配项 |
列表.弹出() / 列表.弹出(索引) | list.pop() / list.pop(index) | 移除并返回元素 |
列表.清空() | list.clear() | 清空列表 |
列表.复制() | list.copy() | 浅拷贝 |
列表.计数(元素) | list.count(element) | 统计元素出现次数 |
列表.扩展(其它列表) | list.extend(other) | 用可迭代对象扩展 |
列表.索引(元素) | list.index(element) | 返回元素第一次出现的索引 |
列表.反转() | list.reverse() | 就地反转 |
列表.排序() | list.sort() | 就地排序 |
直接调用 排序 时映射为内置函数 sorted;作为属性调用时映射为 .sort()。
魔法方法
| PyCN | Python | PyCN | Python |
|---|---|---|---|
魔法初始化 | __init__ | 魔法新建 | __new__ |
魔法销毁 | __del__ | 魔法字符串表示 | __str__ |
魔法表达式 | __repr__ | 魔法字节表示 | __bytes__ |
魔法格式化 | __format__ | 魔法等于 | __eq__ |
魔法不等于 | __ne__ | 魔法小于 | __lt__ |
魔法小于等于 | __le__ | 魔法大于 | __gt__ |
魔法大于等于 | __ge__ | 魔法哈希 | __hash__ |
魔法布尔 | __bool__ | 魔法属性获取 | __getattr__ |
魔法属性设置 | __setattr__ | 魔法属性删除 | __delattr__ |
魔法属性获取项 | __getitem__ | 魔法属性设置项 | __setitem__ |
魔法属性删除项 | __delitem__ | 魔法长度 | __len__ |
魔法可迭代 | __iter__ | 魔法迭代下一个 | __next__ |
魔法反转 | __reversed__ | 魔法包含 | __contains__ |
魔法加 | __add__ | 魔法减 | __sub__ |
魔法乘 | __mul__ | 魔法除 | __truediv__ |
魔法地板除 | __floordiv__ | 魔法取余 | __mod__ |
魔法取幂 | __pow__ | 魔法左移 | __lshift__ |
魔法右移 | __rshift__ | 魔法按位与 | __and__ |
魔法按位或 | __or__ | 魔法按位异或 | __xor__ |
魔法取反 | __invert__ | 魔法可调用 | __call__ |
魔法进入 | __enter__ | 魔法退出 | __exit__ |
魔法拷贝 | __copy__ | 魔法深拷贝 | __deepcopy__ |
魔法名称 | __name__ |
当前限制
- 暂不支持调用时使用关键字参数(
名称=值)以及推导式。 - 尚未实现
while、try/except、with、async/await、yield、match、raise、assert、del、global、nonlocal。 - 多变量赋值的目标只能是普通名称;属性和索引需要逐个赋值。
- 本地
.pycn模块按文件名在导入文件所在目录中解析,不支持点号分隔的模块路径。
