Cantonese 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Cantonese 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Cantonese 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Cantonese 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Cantonese 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 Python
操作系统 跨平台
软件类型 开源软件
所属分类 编程语言
开源组织
地区 国产
提 交 者 白开水不加糖
适用人群 未知
收录时间 2021-02-03

软件简介

Cantonese 是一门用粤语来与计算机沟通的编程语言。在这个语言里,计算机能够读懂你写的粤语。因此,你可以用粤语来操作(虐待)计算机。

快速入门

Hello World

用粤语写的第一个程序Hello World:

畀我睇下 " Hello World! " 点样先?

赋值语句

讲嘢 |A| 系 1
讲嘢 |B| 系 2

查看变量类型

讲嘢 |A| 系 1
起底: |A|

运行结果:

<class 'int'>

循环

打印从1到100:

讲嘢: |start| 系 0
落操场玩跑步
    讲嘢: |start| 系 |start + 1|
    畀我睇下 |start| 点样先?
玩到 |start < 100| 为止

当然也可以使用For循环:

|A| 从 1 行到 100
    畀我睇下 |A| 点样先?
行晒

条件语句

讲嘢: |A| 系 2
如果 |A 系 2| 嘅话 -> {
    畀我睇下 "A 系 2" 点样先?
}
唔系嘅话 -> {
    畀我睇下 "A 唔系 2" 点样先?
}

函数

用Cantonese实现的阶乘:

$factorial |项数| 要做咩:
    如果 |项数 系 0| 嘅话 -> {
        返转头 1
    }
    唔系嘅话 -> {
        返转头 |factorial(项数 - 1) * 项数|
    }
搞掂

返回最大值:

$get_max |数字1, 数字2| 要做咩:
    如果 |数字1 比唔上 数字2| 嘅话 -> {
        返转头 |数字2|
    }
    唔系嘅话 -> {
        返转头 |数字1|
    }
搞掂

调用函数:

用下 |get_max(23, 17)|

抛出异常

掟个 |ImportError| 来睇下?

断言语句

谂下: |1 + 1 == 3| ?

运行结果:

Traceback (most recent call last):
    ......
AssertionError

错误捕捉语句

try-except-finally:

执嘢 -> {
    讲嘢: |A| 系 |B|
}
揾到 |NameError| 嘅话 -> {
    畀我睇下 "揾到NameError" 点样先?
}
执手尾 -> {
    畀我睇下 "执手尾" 点样先?
    讲嘢: |A| 系 1
    讲嘢: |B| 系 1
    畀我睇下 |A, B| 点样先?
}

调用Python库

使下 os
使下 math

面向对象编程

声明对象duck, 继承至object, 分别有两个方法游水睡觉:

咩系 |duck|?
    佢个老豆叫 |object|
    佢识得 |游水| -> {
        畀我睇下 "Duck is swimming" 点样先?
    }
    佢识得 |睡觉| -> {
        畀我睇下 "Duck is sleeping" 点样先?
    }
明白未啊?

调用类中的方法:

用下 |duck().游水()|
用下 |duck().睡觉()|

运行结果:

Duck is swimming
Duck is sleeping

更多例子

显示当前时间

使下 datetime
畀我睇下 |宜家几点| 点样先?

运行结果:

2021-01-17 09:16:20.767191

暂停

使下 time
训阵先 /* 暂停2s */
训 5s /* 暂停5s */

来个随机数

使下 random
讲嘢: |A| 就 |求其啦|

运行结果:

0.15008236307867207

海龟绘图

老作一下 -> {
    首先: |画个圈(100)|
    跟住: |写隻字("Made By Cantonese\n")|
    最尾: |听我支笛()|
}

运行结果:

 

迷宫小游戏

代码

运行结果:

这里查看更多例子.

如何运行?

Cantonese语言运行在Python虚拟机上,环境只支持Python3,因为这才符合广东人先进的思想!

python src/cantonese.py [-文件名]

将Cantonese转化成Python:

python src/cantonese.py [文件名] -to_py

例如:

python src/cantonese.py examples/helloworld.cantonese -to_py

运行结果:

print(" Hello World! ")
exit()

TODOs

  • 完善语法错误检查
  • 添加更多语句
  • 编写编辑器插件
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (32)

加载中
叼老X算不算方法?
昨天 13:50
回复
举报
打分: 力荐
粤之精华
前天 08:36
回复
举报
呢条友系使嘚,够掂水~
02/28 22:07
回复
举报
打分: 力荐
唔比個贊你都唔得拉,西飛勁歷~~!
02/27 10:59
回复
举报
咁都得。。。。。。。
02/26 12:00
回复
举报
想点就点
02/22 09:40
回复
举报
哈哈哈语法太搞野
02/20 11:53
回复
举报
粤语有文字吗?音译打的字不一样可以识别吗?
02/19 16:32
回复
举报
这。。。是要让大家都去学习粤语还是。。。。咋地
02/17 17:16
回复
举报
StepfenShawn软件作者
02/17 21:52
回复
举报
这个我第一份工作的时候就写过类似的,当时自己定义了一套模型,然后写语法、词法解析,做设计器工具,最后转化成目标高级语言运行就行。
02/16 23:08
回复
举报
更多评论
暂无内容
发表了博客
2019/11/30 15:06

粤语拼音表

电脑用汉字粤语拼音表 随着语音识别技术的广泛应用,电脑粤语语音产品将有助长者和残障人士使用资讯科技。一套配合 ISO/IEC 10646 国际编码标准和《香港增补字符集》的粤语拼音参考表将有助加快产品开发的步伐。 《电脑用汉字粤语拼音表》提供了一套适用于香港的粤语拼音方案供市民参考,借此促进业界开发适合本地使用的中文电脑粤语语音产品。 《电脑用汉字粤语拼音表》描述了一套粤语拼音转写方案,并为二万九千多个中文字编订...

0
0
发表了博客
2012/05/25 14:55

广州文思创新软件技术有限公司 招聘JAVA工程师

文思信息技术有限公司(纽交所上市代码: VIT)成立于1995年,是一家信息技术服务提供商及在中国居领先地位的离岸软件开发公司之一。文思是第一家在纽约股票交易所上市的中国软件服务外包企业。据国际数据公司(IDC)的统计, 以2007年销售额衡量, 文思信息技术在为欧美市场提供离岸软件开发行业中位居中国第一。 http://www.vanceinfo.com/cn 2. Java Engnieer Requirement: - Java, shell scripts and SQL - UNIX / Linux platf...

0
0
2020/12/22 19:29

baidu-fanyi-百度翻译API-wwwwwwww Baidu translation API library

baidu-fanyi-百度翻译API-wwwwwwww 发布:2020-12-22 19:29:51.564699 作者:wwwwwwww ### 作者邮箱:wvvwvvvvwvvw@gmail.com ### 首页:https://github.com/wwww-wwww/baidu_fanyi ### 文档:None ### 下载链接 # baidu_fanyi Baidu translation API library Usage: from baidu_fanyi import Translator # create a Baidu developer account and project # at http://developer.baidu.com/console#app/project APP_ID = "" S...

0
0
发表了博客
2012/05/23 16:51

招聘:Senior Java developer

Senior Java developer Job Description : 1. Interpret written business requirements and technical specification documents. 2. Lead 2-3 developers throughout software development cycle. 3. Develop high quality IT solutions that facilitates fund administration business activities. 4. Investigate, analyze and document reported defects. 5. Perform maintenance programming and correction of identified...

0
0
发表了博客
2012/05/24 15:22

Testing招聘

Introduction: Global Banking and Markets IT department provides technology solutions to support its Global Markets business worldwide. Within the department, Finance IT team is responsible for driving the technology solutions to support the finance operations of Global Markets globally including Hong Kong and the Asia-Pacific region. We are now seeking and experienced IT professional to join ou...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
32 评论
9 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部