重现木兰编程语言的基本 try……catch 语法

栏目: 软件资讯 · 发布时间: 3年前

内容简介:上个月初开始逐步对《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,:57
      • setup.py, 34
      • 测试/unittest/语法树.py,确保生成的语法树与原始版本一致:88
      • 【已移出】测试/unittest/正则.py:62
      • 测试/unittest/交互.py,交互环境相关测试:28
      • 测试/unittest/所有用例.py:24
      • 分析器/错误.py:26

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程之法

编程之法

July / 人民邮电出版社 / 2015-9-1 / 49.00元

本书涉及面试、算法、机器学习三个主题。书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进。本书第1章至第6章分别阐述字符串、数组、树、查找、动态规划、海量数据处理等相关的编程面试题和算法,第7章介绍机器学习的两个算法—K近邻和SVM。此外,每一章都有“举一反三”和“习题”,以便读者及时运用所学的方法解决相似的问题,且在附录中收录了语言、链表、概率等其他题型。书中的每一道题都是面试的高......一起来看看 《编程之法》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具