这嘎哒真TM那啥!Python版东北话编程火爆网络
还记得那个刷爆朋友圈的那个文言文编程语言么?

这个项目是一位名为Huang Lingdong的大四学生创建的,当时,就连中科院计算所研究员、机器翻译领域知名专家刘群老师都赞叹道: 后生可畏
近日,Github上一个名叫dongbei的开源编程项目,再一次引起大家关注,这是一个以东北方言词汇为基本关键字的编程语言——dongbei。

该项目作者是一位 Google 的高级软件工程师/技术主管,同时也是 Google C++测试框架 googletest 以及 googlemock 的原作者。
根据项目作者介绍:
dongbei可是填补了世界方言编程地图上的一大片儿空地啊!这么说吧,谁要是看了 dongbei 程序能憋住了不笑,我敬他是纯爷们儿!
那它有啥特点咧?多了去了:
简单啊!小学文化程度就行。您能看懂春晚不?能?那就没问题。
好读啊!看着看着包您不由自主地念出声儿来。
开心啊!呃,做人嘛,最重要的是要开心。
开源啊!不但不要钱,而且不要脸 -- 随时随地欢迎东北话高手打脸指正。
总而言之,dongbei 语言具有极高的娱技比(娱乐精
dongbei 编程语言的开发采用了业界领先的 TDD(TreeNewBee-Driven Development) 方式。 具体地说,就是每个功能都是先把文案写好,八字没一撇牛皮就吹起来了,然后根据牛皮写测试案例,最后再实现功能让牛皮不被吹破。 这样做有两大好处:第一每个功能都是有的放矢,不值得 tree new bee 的功能一概没有。 第二确保了每个功能都有文案负责吹嘘,开发者绝对不会养在深闺无人识。
再来就是系统支持的问题了,donbei只需要保证开发环境有 Python 3 ,直接下载GitHub项目,跑src/dongbei.py,这事儿就成了。
我们还是先来个东北味儿的hello World程序吧:
唠唠:“唉呀,这嘎哒真他妈那啥!”。
用 utf-8 编码保存。要是编辑器因为编码错误埋汰你,那就把文件内容改成:
# -*- coding: utf-8 -*-
唠唠:“唉呀,这嘎哒真他妈那啥!”。
再试,应该就成了。然后在命令行窗口运行:
src/dongbei.py hello-world.dongbei
你应该看到执行结果:
唉呀,这嘎哒真他妈那啥!
语法规则
学习一门语言,先得了解它的词法、语法和语义,下面我们就一点一点来了解一下:
词法
字符串常量
一行代码当中,要是出现配对的中文全角双引号,比如
...“我是一个字符串”...
那么引号当中的内容(我是一个字符串)会被当成一个字符串常量。
常数
除了用阿拉伯数字表示的十进制整数(比如 2、42、250,等等),0 到 10 的常数也可以用中文表达:
零一二三四五六七八九十
二也可以写成两或者俩。三也可以写成仨。
语句
一个 dongbei 程序是由一串语句组成的。每个语句以句号(。)结束。为了表达程序员炽热的感情,也可以用感叹号(!)结束,意思和句号是一样一样的。请大家根据自己的心情任选使用。
1、变量
dongbei 语言允许使用任何字符串做变量名。定义变量如下:
老王是活雷锋。
2、给变量赋值
dongbei 语言不整“赋值”这种文绉绉的词儿。咱们叫“装”。比如:
老王装二。
可以理解为 C 语言的
lao_wang = 2;
要把一个活雷锋的值清空回到原始状态,可以用削:
削老王。
过后老王就啥也不是了。
3、增减变量
活雷锋除了会装,加加减减也是常见的操作。按没病走两步的规矩,这些操作的名字叫做:走走、稍稍、走X步、稍X步。比如:
老张装二。 # 现在老张等于2
老张走走。 # 现在老张等于3
老张走两步。 # 现在老张等于5
老张稍稍。 # 现在老张等于4
老张稍五步。 # 现在老张等于-1
4、输出
要输出信息,咱们得说“唠唠”。假定要说的信息是 YY,就得写
唠唠:YY。
5、循环
磨叽,就是一遍一遍循环。 所以,在 dongbei 语言里循环的写法是:
老王从一到五磨叽: # 老王从1走到5。
唠唠:老王! # 打印老王的当前值。
磨叽完了! # 循环结束。
运行结果如下:
6、条件
虽然 dongbei 人都是活雷锋,干活的时候该讲条件还是要讲条件的。寻思是一项很有用的技能!比如有件事情(不妨叫做 XXX)只想在某个条件(不妨叫 CCC)成立的时候再做,就写:
寻思:CCC ?
要行咧就 XXX
要是 CCC 不成立的时候俺们有另外一件事情 YYY 要做,那就写:
寻思:CCC ?
要行咧就 XXX
要不行咧就 YYY
7、套路
“套路”这名字听着吓人,其实就是给一串常用的组合拳取一个名字,定义套路用这个格式:
套路名字 咋整:
... # 爱做的事儿
整完了。
下面定义一个叫“写九九表”的套路。注意定义套路本身不会让这个套路真的跑起来。所以下面这段程序跑的结果是啥也不做。
写九九表咋整: # 定义套路 写九九表。
老王从1到9磨叽:
老张从老王到9磨叽:
唠唠:老王、“*”、老张、“=”、老王乘老张。 # 打印 X*Y=Z
磨叽完了。
唠唠:“”。 # 空一行。
磨叽完了。
整完了。 # 结束套路定义。
想把上面的套路跑一遍,你得写:
整写九九表。
然后,你就可以输出一份九九乘法表啦:
1*1=1
1*2=2
1*3=3
...
8*8=64
8*9=72
9*9=81
这嘎哒真TM那啥!Python版东北话编程火爆网络的更多相关文章
- 移动端自动化测试Appium 从入门到项目实战Python版☝☝☝
移动端自动化测试Appium 从入门到项目实战Python版 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 说到APP自动化测试,Appium可是说是非常流 ...
- 移动端自动化测试appium 从入门到项目实战Python版✍✍✍
移动端自动化测试appium 从入门到项目实战Python版 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程 ...
- 移动端自动化测试Appium 从入门到项目实战Python版
移动端自动化测试Appium 从入门到项目实战Python版 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 数据结构:顺序表(python版)
顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...
- python版恶俗古风自动生成器.py
python版恶俗古风自动生成器.py """ python版恶俗古风自动生成器.py 模仿自: http://www.jianshu.com/p/f893291674c ...
- LAMP一键安装包(Python版)
去年有出一个python整的LAMP自动安装,不过比较傻,直接调用的yum 去安装了XXX...不过这次一样有用shell..我也想如何不调用shell 来弄一个LAMP自动安装部署啥啥的..不过尼玛 ...
- 编码的秘密(python版)
编码(python版) 最近在学习python的过程中,被不同的编码搞得有点晕,于是看了前人的留下的文档,加上自己的理解,准备写下来,分享给正在为编码苦苦了挣扎的你. 编码的概念 编码就是将信息从一种 ...
- Zabbix 微信报警Python版(带监控项波动图片)
#!/usr/bin/python # -*- coding: UTF- -*- #Function: 微信报警python版(带波动图) #Environment: python import ur ...
随机推荐
- 【CF375D】Trees and Queries——树上启发式合并
(题面不是来自Luogu) 题目描述 有一个大小为n且以1为根的树,树上每个点都有对应的颜色ci.现给出m次询问v, k,问以v为根的子树中有多少种颜色至少出现了k次. 输入格式 第一行两个数n,m表 ...
- C和指针课后练习题3
1.在你的机器上,字符的范围有多大?有那些不同的整数类型以及他们的范围? C语言中数据输入输出格式: %d 有符号10进制整数%i 有符号10进制整数%o 无符号8进制整数%u 无符号10进制整数%x ...
- ubuntu 安装scapy
官网下载最新安装包:https://scapy.net/ 下载之后进入相应文件夹解压: 然后进入相关文件夹启动setup.py: 成功:
- JDK(JDK8,JDK11)高速下载
JDK(JDK8,JDK11)高速下载 oracl 需要登陆才能下载,网速还贼慢. 华为云各版本高速下载通道:https://repo.huaweicloud.com/java/jdk/
- PyQt学习随笔:QWidget的QFont的kerning、Antialiasing属性用途
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 引言 在Designer中,QWidget的font属性有两个比较陌生 ...
- PyQt(Python+Qt)学习随笔:QTableWidget项编辑方法editItem、openPersistentEditor
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 1.触发编辑项的editItem方法 QTableWidget提供了触发项编辑的方法,调用语法如下: ...
- PyQt Designer中带参数的信号为什么匹配不到带参数的槽函数?
老猿在学习ListView组件时,想实现一个在ListView组件中选中一个选择项后触发消息给主窗口,通过主窗口显示当前选中的项的内容. 进入QtDesigner后,设计一个图形界面,其中窗口界面使用 ...
- buu学习记录(下)(做题是不可能做题的)
目录: easy_calc 禁止套娃 EasyWeb Babysqli Easyweb easy_serialize_php 我有一个数据库 SSRFme 枯燥的抽奖 EasyPHP 题目解析: ea ...
- v-if和v-for
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Tomcat 知识点总结
Tomcat 学习笔记.本文相关配置均为 tomcat8 下,其他版本可能略有不同.如有错误请多包涵. 架构 首先,看一下整个架构图 接下来简单解释一下. Server:服务器.Tomcat 就是一个 ...