使用Jupyter笔记本学习Python的方法

  介绍

这篇文章主要介绍了使用Jupyter笔记本学习Python的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

有了Jupyter, PyHamcrest,用一点测试的代码把它们连在一起,你就可以教任何适用于单元测试的Python内容。

使用Jupyter笔记本学习Python的方法

关于Ruby社区的一些事情一直让我印象深刻,其中两个例子是对测试的承诺和对易于上手的强调。这两方面最好的例子是Ruby以心传心,在这里你可以通过修复测试来学习Ruby。

要是我们能把这些神奇的工具也用于Python,我们应该可以做得更好。是的,使用Jupyter笔记本,PyHamcrest,再加上一点类似于胶带的粘合代码,我们可以做出一个包括教学,可工作的代码和需要修复的代码的教程。

首先,需要一些“胶”布。通常,你会使用一些漂亮的命令行测试器来做测试,比如pytest或美德。通常,你甚至不会直接运行它。你使用像托克斯或氮氧化物这样的工具来运行它。然而,对于Jupyter来说,你需要写一小段粘合代码,可以直接在其中运行测试。

幸运的是,这个代码又短又简单:

进口unittest
  
  def run_test (klass):
  套件=unittest.TestLoader () .loadTestsFromTestCase (klass)
  unittest.TextTestRunner(冗长=2).run(套房)
  返回klass复制代码

现在,装备已经就绪,可以进行第一次练习了。

在教学中,从一个简单的练习开始,建立信心总是一个好主意。

那么,让我们来修复一个非常简单的测试:

@run_test   类TestNumbers (unittest.TestCase):      def test_equality(自我):   expected_value=https://www.yisu.com/zixun/3只改这一行   自我。expected_value assertEqual(1 + 1)复制代码 test_equality (__main__.TestNumbers)…失败======================================================================失败:test_equality (__main__.TestNumbers)   ----------------------------------------------------------------------   回溯(最近的电话):   文件“& lt; ipython-input-7-5ebe25bc00f3>“test_equality第6行   自我。expected_value assertEqual (1 + 1)   AssertionError: 2 !=3      ----------------------------------------------------------------------   跑1测试在0.002 s      失败(失败=1)复制代码

"只改这一行“对学生来说是一个有用的标记。它准确地表明了需要修改的内容。否,则学生可以通过将第一行改为<代码> 返回来修复测试。

在这种情况下,修复很容易:

@run_test   类TestNumbers (unittest.TestCase):      def test_equality(自我):   expected_value=https://www.yisu.com/zixun/2修复后的代码行   自我。expected_value assertEqual(1 + 1)复制代码 test_equality (__main__.TestNumbers)…好吧      ----------------------------------------------------------------------   跑1测试在0.002 s      好复制代码

然而,很快,<代码> unittest> pytest> 断言>

从hamcrest导入*
  @run_test
  类TestList (unittest.TestCase):
  
  def test_equality(自我):
  东西=[1,
  5 #只改这一行
  3]
  assert_that(东西,has_items(1、2、3)复制代码
test_equality (__main__.TestList)…失败======================================================================失败:test_equality (__main__.TestList)   ----------------------------------------------------------------------   回溯(最近的电话):   文件“& lt; ipython -输入- 11 - 96 - c91225ee7d>“, 8号线,在test_equality   assert_that(东西,has_items (1、2、3)   AssertionError:   预期:序列包含& lt; 1比;和一个序列包含& lt; 2比;和一个序列包含& lt; 3祝辞)   但是:序列包含& lt; 2比;(1、5、3)& lt;比;         ----------------------------------------------------------------------   跑1测试在0.004 s      失败(失败=1)复制代码

PyHamcrest不仅擅长灵活的断言,它还擅长清晰的错误信息。正因为如此,问题就显而易见了。

使用Jupyter笔记本学习Python的方法