"编程不应该有语言的界限,代码的世界应该是包容的、开放的。"
作为一名中国程序员,我深知编程语言的英文门槛阻碍了许多人学习编程的热情。当我看到孩子们、老人们或非英语背景的人们因为语言障碍而放弃学习编程时,我感到非常遗憾。
中文Python解释器项目源于一个简单而温暖的想法:让每个人都能用自己熟悉的语言书写代码,表达逻辑,创造未来。
在这个信息时代,编程已不再是少数人的专利,而是未来公民的基本素养。通过母语编程,我们可以让更多人参与到数字世界的创造中来,无论年龄、教育背景,人人都有机会成为创造者而非仅仅是使用者。
这不仅仅是一个工具,更是一座桥梁——连接普通人与代码世界的桥梁,连接东方思维与西方技术的桥梁,连接过去与未来的桥梁。
- 全中文关键词:用
如果
替代if
,用对于
替代for
,让代码读起来如同阅读中文文章 - 多种表达方式:支持多种中文表达,如
如果/若/假如
都可表示if
,尊重语言的多样性 - 中文标点支持:可以使用中文标点符号,如
,
。
()
等,无缝融入中文写作习惯 - 实时转换:实时显示转换后的Python代码,帮助学习者理解标准Python语法
- 低门槛高天花板:初学者可以专注于逻辑思维而非语法记忆,同时保留了Python的全部能力
- 无缝生态集成:可以直接调用Python生态中的各种强大库和框架
- 交互式体验:即写即运行,快速验证想法,培养编程兴趣
- 教育友好:特别适合编程启蒙和基础教育,降低认知负担
- 免安装使用:无需安装Python或任何软件,直接在浏览器中运行
- 响应式界面:适配手机和平板等移动设备,随时随地学习编程
- 快速加载:基于最新Web技术,启动迅速,无需等待漫长的安装过程
- 实时执行:即时运行代码,立即查看结果,加快学习反馈循环
- 共享便捷:可以通过链接轻松分享你的中文Python程序
- 跨平台兼容:任何现代浏览器都能运行,不受操作系统限制
- 完整功能:支持所有Python库和功能,适合更复杂的编程任务
- 文件管理:可以保存、打开和管理本地中文Python代码文件
- 高性能:直接使用本地Python解释器,运行更快、更稳定
- 深度集成:与操作系统更紧密的集成,支持更多高级功能
- 图形化界面:友好的编辑器界面,支持语法高亮、文件操作等功能
中文Python项目包含两个主要版本:桌面版和在线版。
桌面版基于Python语言开发,主要包含三个核心组件:
- chinese_python.py:主程序,负责解析和执行.cnpy文件,提供交互式解释器
- mapping.py:中文-Python关键词映射表,支持丰富的中文表达方式
- chinese_python_gui.py(推荐打开):图形用户界面,提供代码编辑、运行等功能
在线版基于现代Web技术和Pyodide开发:
- 前端界面:使用HTML、CSS和JavaScript构建响应式用户界面
- 代码编辑:集成CodeMirror提供语法高亮和编辑功能
- Python执行:采用Pyodide在浏览器中直接运行Python代码
- 中文转换:使用JavaScript实现中文到Python的实时转换
两个版本都通过精确的正则表达式和映射算法,实现了中文到Python的无缝转换,同时保留了Python强大的功能和生态系统。在线版特别适合快速体验和教学场景,而桌面版则更适合深入学习和复杂项目开发。
这个项目的核心原理其实非常简单而朴素:它本质上是一个文本替换工具,通过预定义的中文-Python关键词映射表,将中文代码转换为标准Python代码后再执行。
我们坦诚地承认,这不是一个复杂的人工智能系统,也不是一个完整的编程语言实现。它只是一个简单的转换器,一座小桥,一扇窗户。正是这种简单性,让它能够稳定地工作,也让它容易被理解和修改。
这个项目有明显的局限性:
- 它不理解中文语法的深层结构
- 它不能处理过于复杂的中文表达
- 它可能在某些边缘情况下出现转换错误
- 它依赖于预定义的映射,无法自动学习新的表达方式
- 还是需要安装python环境
- 它不能中文显示Python的异常和错误
但正是这种简单和局限,提醒着我们技术的本质 - 技术不必总是复杂和完美的,才能带来价值。有时候,一个简单但能解决实际问题的工具,比一个复杂但难以理解的系统更有意义。就像一座简陋但坚固的小桥,虽然不如大桥宏伟,却能真实地连接两岸的人们。
这个项目的价值不在于它的技术复杂度,而在于它背后的理念和它可能带来的改变。它是一个开始,一个尝试,一个邀请 - 邀请更多人思考python的编程方法,如何让编程更加亲民。
中文Python解释器在编程教育领域具有独特的价值:
- 降低入门门槛:消除语言障碍,让学习者专注于编程思维而非死记硬背英文术语
- 提高学习效率:使用母语学习能够更快地理解和记忆概念
- 增强学习信心:初学者能更容易获得成功体验,增强学习动力
- 促进知识迁移:掌握编程逻辑后,过渡到标准Python更加平滑
- 激发创造兴趣:通过即时反馈和友好界面,点燃学习者的创造欲望
- 服务广泛人群:从小学生到老年人,从城市到乡村,都能受益
- 增进家庭互动:父母可以更容易参与到孩子的编程学习中
- 弥合数字鸿沟:为欠发达地区提供更友好的编程学习工具
- 保留文化特色:在学习现代技术的同时传承中文思维方式
中文Python解释器不仅仅是一个工具,更是一个让编程教育普惠化、民主化的尝试。通过母语编程,我们希望看到更多的创新思想不再因语言障碍而被埋没,更多的创造梦想能够得到实现。
现在您可以直接通过浏览器使用中文Python在线编辑器,无需安装任何软件:
- 访问中文Python在线编辑器
- 在编辑器中输入中文Python代码
- 点击"运行"按钮查看结果
在线版本基于Pyodide技术,直接在浏览器中运行Python代码,支持大部分Python功能和标准库。
如果您需要完整功能和更好的性能,可以使用桌面版:
- 克隆或下载本项目
- 运行
python chinese_python_gui.py
启动图形界面 - 开始用中文编写Python程序!
# 这是一个简单的中文Python示例
打印("你好,世界!")
# 定义一个函数
定义 计算平方(数字):
返回 数字 * 数字
# 使用for循环
对于 i 在 范围(1, 6):
打印(f"{i} 的平方是 {计算平方(i)}")
# 条件语句
如果 计算平方(3) > 5:
打印("3的平方大于5")
否则:
打印("3的平方不大于5")
中文Python项目致力于推广编程教育普惠化和让编程更容易上手。通过降低语言障碍,我们希望让更多人有机会体验编程的乐趣,并从中获取知识和技能。
这个项目诞生于一个简单的信念:技术应该服务于人,而不是相反。
在这个追求技术复杂性和先进性的时代,我们有时会忘记最初的目的。我们构建系统不是为了炫耀技术的复杂,而是为了解决人的问题。中文Python解释器在技术上或许平凡无奇,但它试图解决的,是一个真实而重要的问题:如何让编程的大门向更多人敞开。
每当我收到一封邮件,告诉我有一位老师正在用这个工具教孩子们编程;或者有一位年长者终于能够理解什么是编程;或者有一位乡村学校的学生因为它而开始了编程之旅,我都会感到一种难以言表的满足和感动。
这个项目不完美,它有诸多局限,但它是真诚的。它提醒我们,技术的意义不在于它有多么先进,而在于它能为多少人的生活带来一点点改变。
如果这个简单的工具能够帮助哪怕一个人跨越语言的障碍,感受到编程的乐趣,那么它存在的意义就已经得到了证明。
编程改变世界,从母语开始。而改变,往往始于最简单的一步。
"当我们能够用母语编程时,我们不仅仅是在写代码,我们是在讲述属于自己的故事,编织属于自己的数字梦想。"
"技术的终极目标不是创造复杂的工具,而是简化复杂的事物,让每个人都能参与创造。中文Python正是朝着这个方向迈出的一小步。"
"语言不应成为思想的牢笼,代码也不该被语言所束缚。让我们用母语书写代码,用创意定义未来。"
— ikdxhz
中文 | Python | 中文 | Python | 中文 | Python | 中文 | Python |
---|---|---|---|---|---|---|---|
如果 | if | 否则如果 | elif | 否则 | else | 循环 | for |
若 | if | 或者如果 | elif | 不然 | else | 遍历 | for |
若是 | if | 不然如果 | elif | 要不然 | else | 迭代 | for |
假如 | if | 要不然如果 | elif | 反之 | else | 对于 | for |
倘若 | if | 当 | while | 跳过 | continue | 中断 | break |
但凡 | if | 只要 | while | 继续 | continue | 终止 | break |
苟若 | if | 周而复始 | while | 略过 | continue | 停止 | break |
且 | and | 或 | or | 非 | not | 是 | is |
并且 | and | 或者 | or | 不 | not | 为 | is |
同时 | and | 亦或 | or | 不是 | not | 等于 | is |
与 | and | 或是 | or | 取反 | not | 不等于 | is not |
既 | and | 抑或 | or | 非也 | not | 不为 | is not |
定义 | def | 类 | class | 返回 | return | 匿名函数 | lambda |
函数 | def | 对象类 | class | 回传 | return | 匿名 | lambda |
方法 | def | 模型 | class | 输出 | return | 短函数 | lambda |
术 | def | 流派 | class | 回馈 | return | 内联函数 | lambda |
法门 | def | 门派 | class | 奉上 | return | 简函数 | lambda |
尝试 | try | 捕获 | except | 最后 | finally | 值错误 | ValueError |
试着 | try | 异常 | except | 善后 | finally | 类型错误 | TypeError |
测试 | try | 例外 | except | 无论如何 | finally | 索引错误 | IndexError |
小心行事 | try | 错误 | except | 总是执行 | finally | 键错误 | KeyError |
姑且一试 | try | 若有差池 | except | 清理 | finally | 零除错误 | ZeroDivisionError |
全局 | global | 非局部 | nonlocal | 局部 | local | 通过 | pass |
全局变量 | global | 外层变量 | nonlocal | 变量 | variable | 跳过语句 | pass |
全局作用域 | global | 外部变量 | nonlocal | 常量 | constant | 空语句 | pass |
打印 | 输入 | input | 范围 | range | 长度 | len | |
显示 | 读取 | input | 区间 | range | 计数 | len | |
写出 | 接收 | input | 序列 | range | 统计 | len | |
呈现 | 询问 | input | 数列 | range | 数量 | len | |
道出 | 请教 | input | 枚举 | enumerate | 遍历 | iter | |
列表 | list | 字典 | dict | 集合 | set | 元组 | tuple |
表 | list | 表格 | dict | 无序集 | set | 固定组 | tuple |
数组 | list | 映射 | dict | 唯一集 | set | 不变组 | tuple |
清单 | list | 字典册 | dict | 添加 | append | 插入 | insert |
簿册 | list | 对照表 | dict | 追加 | append | 弹出 | pop |
名录 | list | 哈希表 | dict | 增加 | append | 删除 | remove |
打开 | open | 读取 | read | 写入 | write | 关闭 | close |
开卷 | open | 读一行 | readline | 写入行 | writelines | 合卷 | close |
读模式 | r | 写模式 | w | 追加模式 | a | 二进制模式 | b |
读写模式 | r+ | 与 | with | 作为 | as | 刷新 | flush |
平方 | square | 平均值 | mean | 标准差 | std | 方差 | var |
开方 | sqrt | 立方 | cube | 立方根 | cbrt | 绝对值 | abs |
对数 | log | 以10为底对数 | log10 | 指数 | exp | 幂 | pow |
正弦 | sin | 余弦 | cos | 正切 | tan | 反正弦 | arcsin |
四舍五入 | round | 向上取整 | ceil | 向下取整 | floor | 阶乘 | factorial |
模式 | pattern | 匹配 | match | 搜索 | search | 查找全部 | findall |
替换 | sub | 分割 | split | 编译 | compile | 开头匹配 | ^ |
结尾匹配 | $ | 任意字符 | . | 零次或多次 | * | 一次或多次 | + |
零次或一次 | ? | 字符集 | [] | 排除集 | [^] | 组 | () |
网络 | network | 套接字 | socket | 服务器 | server | 客户端 | client |
主机 | host | 端口 | port | 地址 | address | IP地址 | ip_address |
请求 | request | 响应 | response | GET请求 | get | POST请求 | post |
头部 | headers | 内容类型 | content_type | 状态码 | status_code | 会话 | session |
数据框 | DataFrame | 系列 | Series | 读取CSV | pd.read_csv | 读取Excel | pd.read_excel |
分组 | groupby | 聚合 | aggregate | 透视表 | pivot_table | 合并 | merge |
图像 | figure | 子图 | subplot | 绘图 | plot | 散点图 | scatter |
条形图 | bar | 饼图 | pie | 直方图 | hist | 箱线图 | boxplot |
窗口 | window | 按钮 | button | 标签 | label | 输入框 | entry |
文本框 | text | 复选框 | checkbox | 单选按钮 | radiobutton | 下拉菜单 | combobox |
菜单 | menu | 菜单栏 | menubar | 工具栏 | toolbar | 状态栏 | statusbar |
画布 | canvas | 事件 | event | 绑定 | bind | 布局 | layout |
苟若 | if | 不尔 | else | 术 | def | 门派 | class |
诚如 | if | 否则然 | else | 法门 | def | 流派 | class |
若然 | if | 点到为止 | break | 招式 | def | 派系 | class |
且看下回 | continue | 开卷 | open | 誊抄 | write | 小生 | self |
道出 | 求教 | input | 吾身 | self | 在下 | self |
请注意,上表仅展示了部分中文映射,完整映射请参考源代码中的mapping.py文件。您可以根据个人喜好和习惯选择合适的中文表达方式。
对于初学者,以下是一种推荐的学习方法,帮助您快速掌握中文Python编程:
- 先凭直觉编写中文代码:根据中文关键词的直观含义,尝试编写简单的程序
- 遇到报错交给AI:如果遇到语法或逻辑错误,可以将代码提交给AI助手获取帮助
- 对比标准Python:在GUI界面中运行代码,观察转换后的标准Python代码,理解两者的对应关系
这种"先写后改"的方法能帮助您在实践中快速掌握中文Python的使用技巧。
假设您想编写一个简单的猜数字游戏,可以先尝试用中文直观地写出代码:
导入 随机
神秘数字 = 随机.随机整数(1, 100)
猜对了 = 假
尝试次数 = 0
当 猜对了 == 假:
尝试次数 = 尝试次数 + 1
用户猜测 = 整数(输入("请猜一个1到100之间的数字:"))
如果 用户猜测 < 神秘数字:
打印("太小了,再试试!")
否则如果 用户猜测 > 神秘数字:
打印("太大了,再试试!")
否则:
打印(f"恭喜你,{尝试次数}次就猜对了!")
猜对了 = 真
运行时可能会遇到错误,比如:
错误: 'module' object has no attribute '随机整数'
此时可以将代码提交给AI助手,AI会提示您正确的写法:
导入 random as 随机
神秘数字 = 随机.randint(1, 100)
猜对了 = 假
尝试次数 = 0
当 猜对了 == 假:
尝试次数 = 尝试次数 + 1
用户猜测 = 整数(输入("请猜一个1到100之间的数字:"))
如果 用户猜测 < 神秘数字:
打印("太小了,再试试!")
否则如果 用户猜测 > 神秘数字:
打印("太大了,再试试!")
否则:
打印(f"恭喜你,{尝试次数}次就猜对了!")
猜对了 = 真
通过这种不断尝试、出错、修正的过程,您可以逐步掌握中文Python的使用技巧。
- 从小项目开始:先尝试编写简单的程序,如计算器、猜数字游戏等
- 参考对照表:遇到不确定的关键词时,查阅上面的中文关键词对照表
- 观察转换结果:在GUI界面中查看中文代码转换为Python代码的结果,理解转换规则
- 积极使用AI辅助:将出错的代码提交给AI助手,请求修正和解释
- 加入学习社区:与其他中文Python学习者交流经验和心得
- 灵活混用:对于不确定的中文表达,可以临时使用英文关键词,后续再替换为中文
记住,学习编程最重要的是动手实践。即使出错也不要气馁,每一次错误都是宝贵的学习机会!
当您遇到中文Python编程问题时,可以按照以下步骤向AI助手寻求帮助:
- 准备好您的代码:复制您编写的完整中文Python代码
- 提供错误信息:如果有报错,请一并提供完整的错误信息
- 明确表述您的问题:说明您想要实现什么功能,以及遇到了什么困难
- 咨询AI助手:将以上信息提交给AI助手(如ChatGPT、Claude等),提问类似:
我正在学习中文Python编程,这是我的代码:
[粘贴您的中文Python代码]
运行时报错:
[粘贴错误信息]
我想实现的功能是:[描述您的目标]
请帮我修正代码,并解释错误原因。
- 学习和理解:AI助手会提供修正后的代码和解释,请仔细阅读,理解问题所在
- 应用和实践:使用修正后的代码继续您的学习,并尝试将学到的知识应用到新的场景中
AI助手不仅可以帮您修复代码错误,还可以:
- 解释中文Python的工作原理
- 提供代码优化建议
- 推荐适合学习的小项目
- 解答关于编程概念的疑问
借助AI助手,您可以获得类似编程导师的个性化指导,加速您的学习过程。
以下是使用中文Python学习编程的推荐路径:
- 熟悉基本语法:变量、运算符、条件语句、循环
- 编写简单程序:计算器、猜数字游戏、简单的文本处理
- 学习使用GUI界面,了解中文代码如何转换为标准Python
- 学习函数和模块:自定义函数、导入标准库
- 数据结构应用:列表、字典、集合、元组的操作
- 文件操作:读写文件、处理不同格式的数据
- 面向对象编程:类、对象、继承、多态
- 错误和异常处理:尝试/捕获结构、自定义异常
- 标准库探索:使用time、random、os、math等常用库
- 数据分析:使用pandas、numpy进行数据处理
- 可视化:使用matplotlib绘制图表
- Web应用:学习使用Flask或Django创建简单网站
- 人工智能入门:尝试使用TensorFlow或PyTorch构建简单模型
通过这个学习路径,您可以循序渐进地掌握Python编程,从入门到专业应用,享受用母语编程的乐趣和便利。
- 操作系统:Windows / macOS(未测试) / Linux(未测试)
- Python版本:Python 3.6+ (推荐 Python 3.8 或更高版本)
- 依赖库:标准库(无需额外安装第三方库)
- 存储空间:< 10MB
- 内存需求:≥ 512MB
- 点击页面顶部的"Code"按钮,选择"Download ZIP"
- 解压下载的ZIP文件到任意目录
- 进入解压后的目录,运行
python chinese_python_gui.py
git clone https://github.com/ikdxhz/chinese-python.git
cd chinese-python
python chinese_python_gui.py
Q: 为什么我的代码显示"'xxx' is not defined"错误?
A: 请检查是否使用了未定义的变量,或者是否将英文关键词与中文关键词混用。
Q: 如何将中文Python代码转换为标准Python代码?
A: 在GUI界面中运行代码,转换后的标准Python代码会显示在左侧窗口。
Q: 中文Python能调用第三方库吗?
A: 可以!中文Python完全兼容Python生态,可以使用导入
关键词导入任何Python库。
Q: 可以在生产环境中使用中文Python吗?
A: 中文Python主要面向教育和学习场景,不建议在生产环境中使用。
我们欢迎各种形式的贡献,包括但不限于:
- 提交Bug和建议
- 改进文档
- 增加新功能
- 增强现有功能
- 分享使用案例和故事
- 项目作者:ikdxhz
- 电子邮件:ikdxhz@ikdxhz.top
- 项目主页:https://github.com/ikdxhz/chinese-python
本项目采用 MIT 许可证。
选择MIT许可证是我们深思熟虑的决定,它体现了我们对知识共享和教育普惠的信念:
-
开放与包容:就像编程不应有语言的界限,知识也不应有传播的壁垒。MIT许可证确保任何人,无论背景、国籍或经济条件,都能自由使用、修改和分享这个工具。
-
教育无边界:我们相信教育是最伟大的平等器。通过MIT许可,中文Python解释器可以毫无障碍地进入课堂、社区中心和偏远地区,帮助那些最需要而往往最缺乏资源的人群。
-
创新的火种:每一个伟大的创新都建立在前人的基础上。MIT许可证像一根火炬,让知识的火种能够传递,让更多人有机会在这个基础上创造新的可能。
-
文化的桥梁:当我们允许代码跨越边界自由流动,我们不仅是在分享技术,也是在建立文化的桥梁。中文Python解释器可能会启发其他语言的类似项目,共同构建一个更加多元包容的编程世界。
-
希望的种子:也许有一天,某个偏远山区的孩子通过这个工具爱上了编程,进而改变了自己的命运;也许某位老师因为它而能够更有效地启发学生;也许某个创业者因此找到了技术解决方案。这些可能性正是MIT许可证所播撒的希望种子。
正如代码是连接人与计算机的语言,开源许可证是连接创造者与使用者的纽带。选择MIT许可证,是我们希望这个纽带尽可能地宽广、坚固且温暖。
在编写中文Python解释器的每一行代码时,我们都怀揣着让编程更加平等、更具普惠性的梦想。MIT许可证完美地呼应了这一理念 - 它不仅是一份法律文件,更是一份对未来的承诺,一份对共同成长的邀请。当一个偏远地区的老师下载这个工具,当一位年长者第一次运行自己的程序,当一个孩子兴奋地展示自己创造的小游戏时,MIT许可证所体现的开放精神就在那一刻结出了果实。这或许就是技术最美的样子 - 不筑高墙,而是搭建桥梁;不设障碍,而是创造可能。
每当收到用户的感谢邮件,每当看到有人因为这个项目而开始了编程之旅,我们都会想起当初选择MIT许可证的初心。在数字鸿沟日益扩大的今天,技术普惠比以往任何时候都更加重要。MIT许可证就像是我们递出的一只手,一座桥,一盏灯 - 引导着每一个渴望学习的心灵找到属于自己的路。而当这些学习者未来成为贡献者,当他们将自己的创新也以开源的方式回馈社会,这种良性循环将创造出超乎想象的价值。这正是开源精神与母语编程理念的完美交融 - 用最自然的方式,让最先进的技术,惠及最广泛的人群。
特别感谢所有为这个项目提供反馈、建议和鼓励的用户。你们的支持是我们前进的动力。
也感谢Python社区为我们提供了如此强大而灵活的编程语言,让我们能够构建这样的工具,服务更广泛的人群。
最后,感谢所有致力于推广编程教育、消除数字鸿沟的教育工作者和志愿者们,你们的工作让世界变得更美好。
编程改变世界,母语改变编程。
Programming changes the world, mother tongue changes programming.
-
在线版本发布:
- 推出基于浏览器的中文Python在线编辑器,无需安装即可使用
- 添加响应式设计,适配桌面和移动设备
- 基于Pyodide技术,实现浏览器内直接执行Python代码
-
映射表扩展:
- 增加数学运算相关映射(绝对值、最大值、最小值等)
- 增加文件操作相关映射(打开、读、写入等)
- 增加迭代和生成器相关映射(生成、枚举、过滤等)
- 增加面向对象编程相关映射(继承、超类、初始化等)
- 增加比较运算符映射(大于、小于、等于等于等)
- 增加时间和日期处理相关映射(当前时间、年、月、日等)
-
用户体验优化:
- 改进错误提示和状态显示
- 优化代码执行流程,提高稳定性
- 增加实时输出功能,代码执行结果即时显示
- 添加停止执行功能,可随时中断长时间运行的代码
- 修复了一些界面问题
-
性能提升:
- 优化转换算法,提高解析速度
- 减少内存占用,提升运行效率
- 改进缓存机制,加快页面加载速度
这次更新大大扩展了中文Python的应用范围,通过在线版本降低了使用门槛,同时丰富的映射表让中文编程更加自然流畅,为用户提供更好的学习和使用体验。
(暂无)
欢迎贡献!您可以通过以下方式参与:
- 添加更多中文关键词映射
- 改进代码转换算法
- 修复bug
- 添加新功能
- 改进文档
MIT