開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
Head First はじめてのプログラミング ―頭とからだで覚えるPythonプログラミング入門 (Eric Freeman(著)、嶋田 健志(監修)、木下 哲也(翻訳)、株式会社オライリー・ジャパン)を9章(ファイルの保存と取得 - 永続性)の自分で考えてみよう(419ページ)の解答を求めてみる。
コード
Python 3
#!/usr/bin/env python3 from unittest import TestCase, main class ExceptionTests(TestCase): def setUp(self): pass def tearDown(self): pass def test_nonzero(self): nums = ['1', '2', '42'] expecteds = [42, 21, 1] for num, expected in zip(nums, expecteds): self.assertEqual(f(num), expected) def test_zero(self): self.assertRaises(ZeroDivisionError, f, '0') def test_str(self): self.assertRaises(ValueError, f, 'zero') def f(num: str) -> float: try: result: float = 42 / int(num) except ZeroDivisionError: raise ZeroDivisionError() except ValueError: raise ValueError() else: return result if __name__ == '__main__': main()
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
$ ./sample3.py -v test_nonzero (__main__.ExceptionTests) ... ok test_str (__main__.ExceptionTests) ... ok test_zero (__main__.ExceptionTests) ... ok ---------------------------------------------------------------------- Ran 3 tests in 0.000s OK $
0 コメント:
コメントを投稿