扯个淡:用Python实现中文编程

举报
云享专家 发表于 2019/10/18 11:20:00 2019/10/18
【摘要】 Python是面向对象的编程语言,Python中一切都是对象,函数也不例外。所以,我们可以把函数赋值给变量。通过把内置函数(英文)赋值给中文变量就实现了函数的汉化,顺便也把正则re的函数名也个给汉化一下下: 正则.搜索 = 正则.search。哈哈,汗不汗~

既然是扯淡,就不要当真。所谓“中文编程”就是用中文写写代码,不管你看着累不累,我写着就得累死~


“中文编程”由来已久,不知道你听说过“易语言”没有,我很早就听说过了,但是一直没有去尝试,因为觉得完全没必要,甚至是“脱裤子放屁”多此一举。也有其它中文编程语言,就不费力去探究了。


好奇搜了一下,Python中文编程有两个:中蟒周蟒。前者似乎是对源码下了手,把关键字、内置函数名改成中文,2004年就不更新了。后者的开发者应该是个台湾人,对中文代码进行关键字替换成原来的英文然后再用正常的Python解释器执行,方法简单,最新的更新好像是在2015年(github)。


其实,不对Python做任何改动,我们就可以实现绝大部分的“中文编程”,只是Python的保留关键字还得用英文,除非想中莽和周莽那样把保留关键字也编程中文。下图是Python保留的关键字,除了它们,我们写Python的时候都可以用中文。


image.png


那么我们就试着用Python体会一下“中文编程”,下面这段代码在Python 3 中是完全可以运行的。

image.png


我们来看看这个“中文程序”为什么可以运行,它利用了Python的哪些特性?


(1)Python3支持中文作为标识符


Python2时代,程序中的标识符(也就是各种命名,变量名,函数名等等)只能用ascii码中的大小写英文字母,数字等。而Python3进行看扩展,扩展到整个unicode的区域,你可以用可打印的各种符合命名变量、函数等,这也就成了我们“中文编程”的基础。如果用Python2跑这段代码就会报错:

image.png


(2)import as 汉化模块名


利用import as,就可以轻松的实现模块名的汉化。


(3)函数也是对象


Python是面向对象的编程语言,Python中一切都是对象,函数也不例外。所以,我们可以把函数赋值给变量。通过把内置函数(英文)赋值给中文变量就实现了函数的汉化,顺便也把正则re的函数名也个给汉化一下下: 正则.搜索 = 正则.search。哈哈,汗不汗~


再进一步的汉化就是把保留关键词也汉化,讨巧的做法就是周蟒那样对代码进行字符串替换。这样语言本身汉化了,但是它的各种模块,第三分库都是英文的,汉化起来得多累?


所以,“中文编程”就是一个“累”:


其一:打字累;

其二:语言周边没有大量的库是累上加累。


手贱搜索了一下,Wikipedia上还真有个词条叫做:


Non-English-based_programming_languages

不以英语为基础的编程语言


“不以结婚为目的的恋爱都是耍流氓”,不以英语为基础的编程都是耍傻小子。再看看该词条列出的各种非英语编程语言,好特么多啊,一屏还占不下,截取部分看看吧:

image.png

这个列表中有没有雷到你的编程语言?不过好多确实是为教育或儿童开发的编程语言,果然是“累傻小子”的。


淡扯完了,Python的特性你了解了没?



作者:王平

十年专注于python web 开发,网络爬虫。深入理解Python语言,对Python特性深度了解.


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。