Skip to content

ikdxhz/chinese-python

Repository files navigation

中文Python解释器(Chinese Python Interpreter)

中文Python解释器 版本 作者

项目初衷

"编程不应该有语言的界限,代码的世界应该是包容的、开放的。"

作为一名中国程序员,我深知编程语言的英文门槛阻碍了许多人学习编程的热情。当我看到孩子们、老人们或非英语背景的人们因为语言障碍而放弃学习编程时,我感到非常遗憾。

中文Python解释器项目源于一个简单而温暖的想法:让每个人都能用自己熟悉的语言书写代码,表达逻辑,创造未来。

在这个信息时代,编程已不再是少数人的专利,而是未来公民的基本素养。通过母语编程,我们可以让更多人参与到数字世界的创造中来,无论年龄、教育背景,人人都有机会成为创造者而非仅仅是使用者。

这不仅仅是一个工具,更是一座桥梁——连接普通人与代码世界的桥梁,连接东方思维与西方技术的桥梁,连接过去与未来的桥梁。

项目特色

基本特性

  • 全中文关键词:用如果替代if,用对于替代for,让代码读起来如同阅读中文文章
  • 多种表达方式:支持多种中文表达,如如果/若/假如都可表示if,尊重语言的多样性
  • 中文标点支持:可以使用中文标点符号,如 ()等,无缝融入中文写作习惯
  • 实时转换:实时显示转换后的Python代码,帮助学习者理解标准Python语法
  • 低门槛高天花板:初学者可以专注于逻辑思维而非语法记忆,同时保留了Python的全部能力
  • 无缝生态集成:可以直接调用Python生态中的各种强大库和框架
  • 交互式体验:即写即运行,快速验证想法,培养编程兴趣
  • 教育友好:特别适合编程启蒙和基础教育,降低认知负担

在线版本特性

  • 免安装使用:无需安装Python或任何软件,直接在浏览器中运行
  • 响应式界面:适配手机和平板等移动设备,随时随地学习编程
  • 快速加载:基于最新Web技术,启动迅速,无需等待漫长的安装过程
  • 实时执行:即时运行代码,立即查看结果,加快学习反馈循环
  • 共享便捷:可以通过链接轻松分享你的中文Python程序
  • 跨平台兼容:任何现代浏览器都能运行,不受操作系统限制

桌面版本特性

  • 完整功能:支持所有Python库和功能,适合更复杂的编程任务
  • 文件管理:可以保存、打开和管理本地中文Python代码文件
  • 高性能:直接使用本地Python解释器,运行更快、更稳定
  • 深度集成:与操作系统更紧密的集成,支持更多高级功能
  • 图形化界面:友好的编辑器界面,支持语法高亮、文件操作等功能

技术实现

中文Python项目包含两个主要版本:桌面版和在线版。

桌面版技术实现

桌面版基于Python语言开发,主要包含三个核心组件:

  1. chinese_python.py:主程序,负责解析和执行.cnpy文件,提供交互式解释器
  2. mapping.py:中文-Python关键词映射表,支持丰富的中文表达方式
  3. chinese_python_gui.py(推荐打开):图形用户界面,提供代码编辑、运行等功能

在线版技术实现

在线版基于现代Web技术和Pyodide开发:

  1. 前端界面:使用HTML、CSS和JavaScript构建响应式用户界面
  2. 代码编辑:集成CodeMirror提供语法高亮和编辑功能
  3. Python执行:采用Pyodide在浏览器中直接运行Python代码
  4. 中文转换:使用JavaScript实现中文到Python的实时转换

两个版本都通过精确的正则表达式和映射算法,实现了中文到Python的无缝转换,同时保留了Python强大的功能和生态系统。在线版特别适合快速体验和教学场景,而桌面版则更适合深入学习和复杂项目开发。

工作原理与技术局限

这个项目的核心原理其实非常简单而朴素:它本质上是一个文本替换工具,通过预定义的中文-Python关键词映射表,将中文代码转换为标准Python代码后再执行。

我们坦诚地承认,这不是一个复杂的人工智能系统,也不是一个完整的编程语言实现。它只是一个简单的转换器,一座小桥,一扇窗户。正是这种简单性,让它能够稳定地工作,也让它容易被理解和修改。

这个项目有明显的局限性:

  • 它不理解中文语法的深层结构
  • 它不能处理过于复杂的中文表达
  • 它可能在某些边缘情况下出现转换错误
  • 它依赖于预定义的映射,无法自动学习新的表达方式
  • 还是需要安装python环境
  • 它不能中文显示Python的异常和错误

但正是这种简单和局限,提醒着我们技术的本质 - 技术不必总是复杂和完美的,才能带来价值。有时候,一个简单但能解决实际问题的工具,比一个复杂但难以理解的系统更有意义。就像一座简陋但坚固的小桥,虽然不如大桥宏伟,却能真实地连接两岸的人们。

这个项目的价值不在于它的技术复杂度,而在于它背后的理念和它可能带来的改变。它是一个开始,一个尝试,一个邀请 - 邀请更多人思考python的编程方法,如何让编程更加亲民。

教育价值

中文Python解释器在编程教育领域具有独特的价值:

  • 降低入门门槛:消除语言障碍,让学习者专注于编程思维而非死记硬背英文术语
  • 提高学习效率:使用母语学习能够更快地理解和记忆概念
  • 增强学习信心:初学者能更容易获得成功体验,增强学习动力
  • 促进知识迁移:掌握编程逻辑后,过渡到标准Python更加平滑
  • 激发创造兴趣:通过即时反馈和友好界面,点燃学习者的创造欲望
  • 服务广泛人群:从小学生到老年人,从城市到乡村,都能受益
  • 增进家庭互动:父母可以更容易参与到孩子的编程学习中
  • 弥合数字鸿沟:为欠发达地区提供更友好的编程学习工具
  • 保留文化特色:在学习现代技术的同时传承中文思维方式

中文Python解释器不仅仅是一个工具,更是一个让编程教育普惠化、民主化的尝试。通过母语编程,我们希望看到更多的创新思想不再因语言障碍而被埋没,更多的创造梦想能够得到实现。

使用方法

在线版本

现在您可以直接通过浏览器使用中文Python在线编辑器,无需安装任何软件:

  1. 访问中文Python在线编辑器
  2. 在编辑器中输入中文Python代码
  3. 点击"运行"按钮查看结果

在线版本基于Pyodide技术,直接在浏览器中运行Python代码,支持大部分Python功能和标准库。

桌面版本

如果您需要完整功能和更好的性能,可以使用桌面版:

  1. 克隆或下载本项目
  2. 运行 python chinese_python_gui.py 启动图形界面
  3. 开始用中文编写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
打印 print 输入 input 范围 range 长度 len
显示 print 读取 input 区间 range 计数 len
写出 print 接收 input 序列 range 统计 len
呈现 print 询问 input 数列 range 数量 len
道出 print 请教 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
道出 print 求教 input 吾身 self 在下 self

请注意,上表仅展示了部分中文映射,完整映射请参考源代码中的mapping.py文件。您可以根据个人喜好和习惯选择合适的中文表达方式。

学习方法

对于初学者,以下是一种推荐的学习方法,帮助您快速掌握中文Python编程:

  1. 先凭直觉编写中文代码:根据中文关键词的直观含义,尝试编写简单的程序
  2. 遇到报错交给AI:如果遇到语法或逻辑错误,可以将代码提交给AI助手获取帮助
  3. 对比标准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的使用技巧。

提高学习效率的建议

  1. 从小项目开始:先尝试编写简单的程序,如计算器、猜数字游戏等
  2. 参考对照表:遇到不确定的关键词时,查阅上面的中文关键词对照表
  3. 观察转换结果:在GUI界面中查看中文代码转换为Python代码的结果,理解转换规则
  4. 积极使用AI辅助:将出错的代码提交给AI助手,请求修正和解释
  5. 加入学习社区:与其他中文Python学习者交流经验和心得
  6. 灵活混用:对于不确定的中文表达,可以临时使用英文关键词,后续再替换为中文

记住,学习编程最重要的是动手实践。即使出错也不要气馁,每一次错误都是宝贵的学习机会!

如何使用AI助手解决问题

当您遇到中文Python编程问题时,可以按照以下步骤向AI助手寻求帮助:

  1. 准备好您的代码:复制您编写的完整中文Python代码
  2. 提供错误信息:如果有报错,请一并提供完整的错误信息
  3. 明确表述您的问题:说明您想要实现什么功能,以及遇到了什么困难
  4. 咨询AI助手:将以上信息提交给AI助手(如ChatGPT、Claude等),提问类似:
我正在学习中文Python编程,这是我的代码:

[粘贴您的中文Python代码]

运行时报错:

[粘贴错误信息]

我想实现的功能是:[描述您的目标]
请帮我修正代码,并解释错误原因。
  1. 学习和理解:AI助手会提供修正后的代码和解释,请仔细阅读,理解问题所在
  2. 应用和实践:使用修正后的代码继续您的学习,并尝试将学到的知识应用到新的场景中

AI助手不仅可以帮您修复代码错误,还可以:

  • 解释中文Python的工作原理
  • 提供代码优化建议
  • 推荐适合学习的小项目
  • 解答关于编程概念的疑问

借助AI助手,您可以获得类似编程导师的个性化指导,加速您的学习过程。

推荐学习路径

以下是使用中文Python学习编程的推荐路径:

初学阶段 (1-2周)

  1. 熟悉基本语法:变量、运算符、条件语句、循环
  2. 编写简单程序:计算器、猜数字游戏、简单的文本处理
  3. 学习使用GUI界面,了解中文代码如何转换为标准Python

进阶阶段 (2-4周)

  1. 学习函数和模块:自定义函数、导入标准库
  2. 数据结构应用:列表、字典、集合、元组的操作
  3. 文件操作:读写文件、处理不同格式的数据

提高阶段 (1-2个月)

  1. 面向对象编程:类、对象、继承、多态
  2. 错误和异常处理:尝试/捕获结构、自定义异常
  3. 标准库探索:使用time、random、os、math等常用库

专业应用 (持续学习)

  1. 数据分析:使用pandas、numpy进行数据处理
  2. 可视化:使用matplotlib绘制图表
  3. Web应用:学习使用Flask或Django创建简单网站
  4. 人工智能入门:尝试使用TensorFlow或PyTorch构建简单模型

通过这个学习路径,您可以循序渐进地掌握Python编程,从入门到专业应用,享受用母语编程的乐趣和便利。

运行环境要求

  • 操作系统:Windows / macOS(未测试) / Linux(未测试)
  • Python版本:Python 3.6+ (推荐 Python 3.8 或更高版本)
  • 依赖库:标准库(无需额外安装第三方库)
  • 存储空间:< 10MB
  • 内存需求:≥ 512MB

安装指南

方法一:直接下载

  1. 点击页面顶部的"Code"按钮,选择"Download ZIP"
  2. 解压下载的ZIP文件到任意目录
  3. 进入解压后的目录,运行python chinese_python_gui.py

方法二:使用Git克隆

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和建议
  • 改进文档
  • 增加新功能
  • 增强现有功能
  • 分享使用案例和故事

联系方式

许可证

本项目采用 MIT 许可证

选择MIT许可证是我们深思熟虑的决定,它体现了我们对知识共享和教育普惠的信念:

  • 开放与包容:就像编程不应有语言的界限,知识也不应有传播的壁垒。MIT许可证确保任何人,无论背景、国籍或经济条件,都能自由使用、修改和分享这个工具。

  • 教育无边界:我们相信教育是最伟大的平等器。通过MIT许可,中文Python解释器可以毫无障碍地进入课堂、社区中心和偏远地区,帮助那些最需要而往往最缺乏资源的人群。

  • 创新的火种:每一个伟大的创新都建立在前人的基础上。MIT许可证像一根火炬,让知识的火种能够传递,让更多人有机会在这个基础上创造新的可能。

  • 文化的桥梁:当我们允许代码跨越边界自由流动,我们不仅是在分享技术,也是在建立文化的桥梁。中文Python解释器可能会启发其他语言的类似项目,共同构建一个更加多元包容的编程世界。

  • 希望的种子:也许有一天,某个偏远山区的孩子通过这个工具爱上了编程,进而改变了自己的命运;也许某位老师因为它而能够更有效地启发学生;也许某个创业者因此找到了技术解决方案。这些可能性正是MIT许可证所播撒的希望种子。

正如代码是连接人与计算机的语言,开源许可证是连接创造者与使用者的纽带。选择MIT许可证,是我们希望这个纽带尽可能地宽广、坚固且温暖。

在编写中文Python解释器的每一行代码时,我们都怀揣着让编程更加平等、更具普惠性的梦想。MIT许可证完美地呼应了这一理念 - 它不仅是一份法律文件,更是一份对未来的承诺,一份对共同成长的邀请。当一个偏远地区的老师下载这个工具,当一位年长者第一次运行自己的程序,当一个孩子兴奋地展示自己创造的小游戏时,MIT许可证所体现的开放精神就在那一刻结出了果实。这或许就是技术最美的样子 - 不筑高墙,而是搭建桥梁;不设障碍,而是创造可能。

每当收到用户的感谢邮件,每当看到有人因为这个项目而开始了编程之旅,我们都会想起当初选择MIT许可证的初心。在数字鸿沟日益扩大的今天,技术普惠比以往任何时候都更加重要。MIT许可证就像是我们递出的一只手,一座桥,一盏灯 - 引导着每一个渴望学习的心灵找到属于自己的路。而当这些学习者未来成为贡献者,当他们将自己的创新也以开源的方式回馈社会,这种良性循环将创造出超乎想象的价值。这正是开源精神与母语编程理念的完美交融 - 用最自然的方式,让最先进的技术,惠及最广泛的人群。

致谢

特别感谢所有为这个项目提供反馈、建议和鼓励的用户。你们的支持是我们前进的动力。

也感谢Python社区为我们提供了如此强大而灵活的编程语言,让我们能够构建这样的工具,服务更广泛的人群。

最后,感谢所有致力于推广编程教育、消除数字鸿沟的教育工作者和志愿者们,你们的工作让世界变得更美好。


编程改变世界,母语改变编程。

Programming changes the world, mother tongue changes programming.


最近更新

2024年6月24日更新

  1. 在线版本发布

    • 推出基于浏览器的中文Python在线编辑器,无需安装即可使用
    • 添加响应式设计,适配桌面和移动设备
    • 基于Pyodide技术,实现浏览器内直接执行Python代码
  2. 映射表扩展

    • 增加数学运算相关映射(绝对值、最大值、最小值等)
    • 增加文件操作相关映射(打开、读、写入等)
    • 增加迭代和生成器相关映射(生成、枚举、过滤等)
    • 增加面向对象编程相关映射(继承、超类、初始化等)
    • 增加比较运算符映射(大于、小于、等于等于等)
    • 增加时间和日期处理相关映射(当前时间、年、月、日等)
  3. 用户体验优化

    • 改进错误提示和状态显示
    • 优化代码执行流程,提高稳定性
    • 增加实时输出功能,代码执行结果即时显示
    • 添加停止执行功能,可随时中断长时间运行的代码
    • 修复了一些界面问题
  4. 性能提升

    • 优化转换算法,提高解析速度
    • 减少内存占用,提升运行效率
    • 改进缓存机制,加快页面加载速度

这次更新大大扩展了中文Python的应用范围,通过在线版本降低了使用门槛,同时丰富的映射表让中文编程更加自然流畅,为用户提供更好的学习和使用体验。

贡献

(暂无)

欢迎贡献!您可以通过以下方式参与:

  • 添加更多中文关键词映射
  • 改进代码转换算法
  • 修复bug
  • 添加新功能
  • 改进文档

许可证

MIT

About

中文Python解释器,通过中文学习python的语法结构,让编程不再因为语言不通而被放弃

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published