如何为学生提供Python中的神秘函数

如何为学生提供Python中的神秘函数,python,random,jupyter-notebook,source-code-protection,Python,Random,Jupyter Notebook,Source Code Protection,我在教一门离散数学课程,其中我加入了一个编程组件。我们一直通过Jupyter使用Python笔记本 接下来是概率论的一节,我想给他们提供一个“神秘的随机变量”:我希望学生能够在不知道随机变量是如何定义的情况下对其进行采样 我不知道最好的方法来实现这一点,希望有人能提供一个建议。以下是我想要的功能: 我定义了一个或多个随机变量(最好是Python) 学生应该能够从Python笔记本中的随机变量中取样(这样他们就可以用它做实验),但是 学生应该看不到定义随机变量的代码 如果此系统支持模块,您可以定

我在教一门离散数学课程,其中我加入了一个编程组件。我们一直通过Jupyter使用Python笔记本

接下来是概率论的一节,我想给他们提供一个“神秘的随机变量”:我希望学生能够在不知道随机变量是如何定义的情况下对其进行采样

我不知道最好的方法来实现这一点,希望有人能提供一个建议。以下是我想要的功能:

  • 我定义了一个或多个随机变量(最好是Python)
  • 学生应该能够从Python笔记本中的随机变量中取样(这样他们就可以用它做实验),但是
  • 学生应该看不到定义随机变量的代码

如果此系统支持模块,您可以定义一个返回多个随机值的函数(例如提供索引)或多个返回每个随机值的函数,并将这些函数放在一个学生无权访问的模块中。他们可以导入.pyc模块并使用它,但看不到其中的代码。

隐藏Python源代码并不切实可行。你可以尝试混淆它,或者你可以编写一个带有客户端模块的web服务。对web服务来说,是的,那么你就不会透露任何源代码。给他们一个带有简单接口的简单模块,但是在幕后,使用一个简单的套接字服务来连接在你的网络(在教室环境中)或某个“云服务器”上运行的另一个程序(很多都是免费的)。我不知道你能对一个没有网络的学生做些什么。他们看了你的套接字代码没有关系,尽管这不是你课程的重点。