65.9K
CodeProject 正在变化。 阅读更多。
Home

Turing:算法和 Python 开发的另一种方法

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2018 年 4 月 19 日

CPOL

3分钟阅读

viewsIcon

8480

一个具有调试功能的跨平台算法/伪代码和 Python 开发环境

链接

引言

Turing 是一个非常基础但功能强大的 Python IDE,可以快速轻松地开发算法和 Python 脚本。

背景

我住在法国。在这里,编程已经在高中阶段的学校教授了好几年;虽然它不是人们通常学习的那种编程。老师不教代码,而是只做一些可以归类为“算法”的东西。基本上,我们学习理论、程序流程如何工作、变量是什么、递归是什么等等。在这里,你只有在大学里才开始做“真正”的代码。

因为我们不写“真正”的代码,而是做这种奇怪的伪代码式的算法,所以我们需要一个软件来做这件事,因为理论不能移山。这就是几年前,一位法国数学老师编写了 Algobox 软件(一个巧妙的组合词)的原因。因为它能做每个人想做的事情,而且当时它真的是唯一可用的软件,所以它很快就成了参考,你在数学教科书中到处都能看到它的截图。

它很好。你可以做一些基本的事情,它很有趣等等,但它非常有限。直到最近,你还不能创建函数,除了一个基本的逐步执行功能之外,它不提供任何真正的调试功能,而且它不会告诉你你在程序中的位置。

去年,高层决定开始教孩子们 Python 是件好事,因为它真的很厉害。标准的伪代码仍将被教授,但现在孩子们也会学习 Python。

问题。

几乎所有可用的 Python IDE 都是以程序员会使用它们为前提而制作的。我们说的是 14 岁的孩子,他们使用电脑的主要用途是 YouTube。这些 IDE 的 GUI 是为知道自己在做什么的人设计的,这显然不是这里的情况。

这就是 Turing 的想法的由来。创建一个新的 IDE,支持伪代码和 Python,即使是初学者也可以使用。

好吧,这很好,但是它看起来是什么样子的?

正如亚里士多德所说,“一张截图胜过千言万语。”

更多截图在这里(新窗口)。

幕后

该程序可以在两种模式下工作:算法/伪代码和 Python。两种模式都可以使用 Turing 的函数库、I/O 函数和绘图窗口。

我们最初计划使用 Python 来表示伪代码表达式,但我们得出的结论是,对于初学者来说,编写一种新的、更简单的语法会更容易,因此我们编写了自己的内部表达式引擎,具有自己的递归解析器和函数库。它的语法与 Python 非常相似,但有一些细微的差异

  • ^ 运算符用于求幂(XOR 运算符用于异或运算)。
  • 复数使用传统的数学语法(i 代替 j)。
  • 只有一种数字类型(而不是单独的 intfloatcomplex)。
  • 乘积可以在不显式使用 * 运算符的情况下完成(例如:2pi3x^2)。

可以使用 {x, y}(x ^ 2 + y * 3} 表示法使用 Lambda 函数,并且像在 Python 中一样是一等公民。

调试

在伪代码模式下,可以使用断点并以逐步执行模式运行程序。

在 Python 模式下,逐步执行尚不可用,只能使用断点。

有两个按钮可以运行伪代码程序:运行和调试。第一个按钮将行转换为 Python 代码并透明地作为 Python 运行,以获得更好的性能。第二个按钮逐行透明地运行它。通常,可以使用“运行”按钮,除非你需要使用逐步执行模式调试程序。

Components

主 GUI 使用 PyQt 5 框架和用于代码编辑器的 Pyqode 小部件。

数学库使用 NumPy 用于一些函数。

绘图窗口使用 Matplotlib

历史

  • 2018 年 4 月 18 日:首次发布
© . All rights reserved.