郭德纲单身男女,律政俏妈咪,汕头苏宁电器招聘
在可预见的未来, 高考仍是最重要的也最有社会影响力的人才选拔机制. 很久没有关注, 最近得知高考自选科目中开始增加了编程一项(见). 虽然个人对编程是否应该进入高考仍有保留看法, 但至少全民(都应该可以)编程这一趋势已经很明显了. 这应该是中文编程兴起的另一个契机(前文讨论了一些更技术性的原因).
看了2017年浙江的高考卷, 感觉算法/体系/基础知识比较少, 比较偏技术. 相信以后会逐渐调整. 毕竟技术更新快, 而前者更经得起时间考验也更有含金量. 个人觉得算法在短期内仍需要一个具体的编程语言作为载体, 毕竟教学实践中不可能作纯粹的纸上算法. 那么, 一个适合算法设计和实践的中文编程语言, 假如能在高考卷中使用, 相信会是一个中文编程的里程碑.
本文试图列出一些(当然绝不是全部)这一假想中的语言/开发环境的功能特性和示例, 希望抛砖引玉. 其中, 对每项功能的必需性按照一到三排列, 一最高.
(将在program-in-chinese/overview持续改进和更新)
选择{}作为函数体边界, 因为数学定义中常用左大括号(如下). 暂时没有想到比添上右大括号更合适的设计. 至于{}是否允许省略, 倾向于不允许, 以规避歧义. 另一种可能是类似, 不用{}而是使用关键词作为结束标志("直到这里"之类)
支持全/半角. 选择有, 开发环境在编辑源码时就对源码自动转换到一种格式, 或者编译时自动转换到一种格式. 个人现在感觉前者更能使源码格式统一, 但开发环境和编译器的耦合度恐怕更高. 易语言好像采用前者, 好像采用后者.
定义 二分查找(数组, 目标) { 左索引 = 0 右索引 = 取长度(数组) - 1 位置 = -1 当 左索引 ≤ 右索引 且 位置 为 -1 { 中索引 = 向下取整((左索引 + 右索引) / 2) 如果 数组(中索引) 为 目标 { 位置 = 中索引 } 否则 { 如果 数组(中索引) > 目标 { 右索引 = 中索引 - 1 } 否则 { 左索引 = 中索引 + 1 } } } 返回 位置 }
python:
def binarysearch(array, key): left = 0 right = len(array) - 1 res = -1 while left <= right and res == -1: mid = (left + right) // 2 if array[mid] == key: res = mid else: if array[mid] > key: right = mid - 1 else: left = mid + 1 return res
一些相关讨论和参考:
讨论: 适合中文用户的编程语言和ide, 侧重于现有语言/ide不具备的特性 · issue #11 · program-in-chinese/overview
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python爬虫:Request Payload和Form Data的简单区别说明
浅谈Python中threading join和setDaemon用法及区别说明
Python3-异步进程回调函数(callback())介绍
python继承threading.Thread实现有返回值的子类实例
Python中使用threading.Event协调线程的运行详解
网友评论