跳到正文
IGCSE·Tuition
计算机科学 · 课程

使用没有网络和文件访问的安全运行环境

能运行代码的练习窗口很有用,前提是你知道它会拒绝做什么。

本页内容
  1. 受限的运行环境允许什么、拒绝什么?
  2. 例题
  3. 要提防的错误
  4. 自我检测
  5. 接下来学什么

安全运行环境在你的浏览器里运行简短的 Python 代码,没有网络访问,也没有文件访问,并会停止运行时间过长的程序。它是测试思路的地方,而不是一台完整的电脑。

这一课属于 过渡到 Python 与代码运行,建立在 区分语法错误与错误结果 之上。

受限的运行环境允许什么、拒绝什么?

允许拒绝或超出用途
变量、算术、比较打开或保存文件
if、elif、else使用互联网
for 和 while 循环永不结束的循环(会被限制停止)
列表、函数、print大型函数库和大量数据

我们的 Python 推理沙盒 设有时间限制和内存限制,所以永远不结束的程序会被停止,而不会让页面卡死。我们不认为任何浏览器运行环境是绝对安全的,所以不要把真实的个人资料放进去。

例题

任务:从 10 开始,每次减 3,打印倒数。这是第一次尝试。

n = 10
while n > 0:
    print(n)

第 1 步,追踪。 n 从 10 开始。判断 10 > 0 是 True,所以打印 10。没有任何东西改变 n,所以判断又是 True,再打印 10,永远如此。

第 2 步,预料会被限制停止。 运行环境在达到时间限制时停止程序。输出会是一长串 10,接着是停止信息。运行环境把它停止是正确的行为,错在你的代码。

第 3 步,修正。 循环必须让 n 朝出口移动。

n = 10
while n > 0:
    print(n)
    n = n - 3

第 4 步,重新追踪。

判断时的 nn > 0打印n 之后
10True107
7True74
4True41
1True1-2
-2False

输出是 10, 7, 4, 1。

要提防的错误

常见的失误是设计出依赖文件的练习。

错误答案: lines = open("scores.txt").read()

运行环境没有文件访问,所以这会失败。错在练习的设计,而不是你的逻辑。

改正的做法是把数据放进程序里:scores = [72, 45, 50, 38, 91]。无论数字来自文件还是列表,算法都是一样的,而考试中你要推理的是算法。只使用虚构的数值。

自我检测

1. 为什么没有出口的 while True: 不会让沙盒页面卡死?

查看答案

运行环境有时间限制,达到限制就停止程序,并显示一条信息。

2. 把这一行改成不需要文件也能运行:names = open("class.txt").read()。

查看答案

names = ["Ali", "Mei", "Ravi"]。使用虚构的名字,算法的其余部分不变。

3. 这个程序输出什么?

n = 2
while n < 30:
    n = n * 3
print(n)
查看答案

n 依次是 2、6、18、54。到 54 时,判断 54 < 30 是 False,循环停止。输出:54。

接下来学什么

下一课看为什么必须标明建议所属的考试年份:把 2029 年仅限 Python 的指引分开。你可以在 受限伪代码追踪训练器 里练习追踪循环,再到 Python 推理沙盒 运行同样的逻辑。

如果你想要有人带着练循环和测试,可以看看我们的 线上一对一计算机科学补习。

常见问题

为什么沙盒不能读取文件或使用互联网?

它被设计成在没有网络和文件系统访问的情况下运行简短的练习,所以你的代码无法发送或获取任何东西。练习必须自带数据,例如把数据写成代码里的列表。

沙盒是完整的 Python 安装吗?

不是。它用于小型的推理练习,并限制时间和内存。需要文件、网络或大型函数库的功能不在它的用途范围内,所以依赖它之前先确认练习需要什么。

可以把个人资料输入沙盒吗?

不可以。请使用虚构的数值,例如名字 Ali 或 Mei 以及编造的分数。把任何练习窗口都当作只放示例数据的地方,不要粘贴密码、身份证号码或真实的联络资料。

更新于:

下一步

如果你不确定怎样把文件或输入类的题目改成小型运行环境能执行的样子,一对一的老师可以教你用列表来模拟。

一小时付费试听课,按所安排老师确认的收费,RM80 起。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

家长:在这里咨询

  • 已通过我们的服务帮助 9,000+ 名学生
  • 9+ 年帮助 IGCSE 学生