内容简介:上个月初开始逐步对《Make Your Own Python Text Adventure: A Guide to Learning Programming》一书中的文字冒险游戏例程用木兰语言重写并改为中文标识符,由于接近该系列尾声,于是自己重现了 try……catch 最基...
上个月初开始逐步对《Make Your Own Python Text Adventure: A Guide to Learning Programming》一书中的文字冒险游戏例程用木兰语言重写并改为中文标识符,由于接近该系列尾声,于是自己重现了 try……catch 最基本语法供例程所需(PyPI 0.0.16版本),当然余下还有try 相关与其他很多木兰功能悬赏待重现,随时恭候。
木兰的 try...catch 基本语法
可以 catch 所有错误,不用指定具体类型:
try {
print([][0])
} catch e {
print(e)
}
也可指定错误类型:
try {
print(int('x'))
} catch e : ValueError {
print('v')
}
catch 多个类型错误:
try {
print([][int('0')])
} catch e : ValueError {
print('v')
} catch e : IndexError {
print('i')
}
值得注意的是,从 Python 代码改写为木兰代码时,容易写出这样的代码:
try {
print([][int('0')])
} catch ValueError {
print('v')
} catch IndexError {
print('i')
}
此时会报错:default 'except:' must be last
至此,文字冒险游戏例程 所需的木兰语言功能已基本实现,游戏主要功能也已通过木兰编程语言实现。
但是,余下一个木兰引用特性导致的游戏 bug,尚未想到合适方法规避。如无好的解决方案,恐怕会非常影响木兰语言的实用性,期待能够早日处理。
附:代码量统计
主要部分的代码行数统计,格式为:上次->现在。
- 木兰代码量 3307 -> 3349
- 运行环境,实现与测试大部为木兰代码:582
- 木兰测试用例,包括部分实用小程序(如井字棋):2725 -> 2767 (报错信息测试用例替代了源码中的注释)
- Python 代码量(木兰实现与测试框架):2920 -> 2816
分析器/语法分析器.py
:1021 -> 1049分析器/词法分析器.py
:213 -> 216分析器/语法树.py
:209 -> 225测试/期望值表.py
(从“运行所有.py”中提取):133 -> 135- 【已提取到单独库】
功用/规律.py
,正则表达式 API 原型:100 分析器/语法成分.py
,从语法分析器中提取出来的枚举常量:83 -> 85- 未变
环境.py
,定义全局方法: 174交互.py
,交互环境(REPL):148功用/反馈信息.py
:75中.py
,主程序:74测试/运行所有.py
,检验所有木兰测试代码片段:71功用/调试辅助.py
,:57setup.py
, 34测试/unittest/语法树.py
,确保生成的语法树与原始版本一致:88- 【已移出】
测试/unittest/正则.py
:62 测试/unittest/交互.py
,交互环境相关测试:28测试/unittest/所有用例.py
:24分析器/错误.py
:26
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 木兰编程语言重现:不忘初衷,纠正偏差再出发
- 木兰编程语言重现——支持列表操作,演示编辑器高亮
- 木兰编程语言重现——范围语法“下限..上限 by 间隔”,重构
- 木兰编程语言重现:匿名函数,lambda 表达式初步
- 木兰编程语言重现——功能初具雏形,添加中文报错信息
- 木兰编程语言重现:优先级,一个过不去的坎
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。