開発環境
- 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 コメント:
コメントを投稿