{"id":1251,"date":"2019-04-02T00:39:17","date_gmt":"2019-04-01T15:39:17","guid":{"rendered":"https:\/\/blog.minatoproject.com\/?p=1251"},"modified":"2020-02-07T22:43:54","modified_gmt":"2020-02-07T13:43:54","slug":"python%e3%81%ae%e5%8d%98%e4%bd%93%e3%83%86%e3%82%b9%e3%83%88%e3%82%92%e6%9b%b8%e3%81%8f","status":"publish","type":"post","link":"https:\/\/blog.minatoproject.com\/?p=1251","title":{"rendered":"Python\u306e\u5358\u4f53\u30c6\u30b9\u30c8\u3092\u66f8\u304f"},"content":{"rendered":"<div class=\"veu_autoEyeCatchBox\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.minatoproject.com\/wp-content\/uploads\/2019\/04\/20190402_eyecatch-1024x576.png\" class=\"attachment-large size-large wp-post-image\" alt=\"\" srcset=\"https:\/\/blog.minatoproject.com\/wp-content\/uploads\/2019\/04\/20190402_eyecatch-1024x576.png 1024w, https:\/\/blog.minatoproject.com\/wp-content\/uploads\/2019\/04\/20190402_eyecatch-300x169.png 300w, https:\/\/blog.minatoproject.com\/wp-content\/uploads\/2019\/04\/20190402_eyecatch-768x432.png 768w, https:\/\/blog.minatoproject.com\/wp-content\/uploads\/2019\/04\/20190402_eyecatch-320x180.png 320w, https:\/\/blog.minatoproject.com\/wp-content\/uploads\/2019\/04\/20190402_eyecatch.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div>\n<p>\u4e16\u9593\u306f\u65b0\u5143\u53f7\u304c\u767a\u8868\u3055\u308c\u307e\u3057\u305f\u304c\u305d\u308c\u306f\u305d\u3046\u3068\u3057\u3066\u4eca\u56de\u306f <code>unittest<\/code> \u3068\u3044\u3046Python\u6a19\u6e96\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u5229\u7528\u3057\u3066\u5358\u4f53\u30c6\u30b9\u30c8\u3092\u66f8\u3044\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30c6\u30b9\u30c8\u5bfe\u8c61<\/h2>\n\n\n\n<p>FizzBuzz\u3068\u3044\u3046\u30d3\u30ae\u30ca\u30fc\u958b\u767a\u8005\u306b\u3042\u308a\u304c\u3061\u306a\u8ab2\u984c\u3092\u96d1\u306b\u66f8\u304d\u4e0b\u3057\u305f\u3082\u306e\u3067\u3059\u30023\u306e\u500d\u6570\u3067Fizz\u3092\u30015\u306e\u500d\u6570\u3067Buzz\u3092\u3001\u516c\u500d\u6570\u3067FizzBuzz\u3068\u3044\u3046\u6587\u5b57\u5217\u3092\u51fa\u529b\u3059\u308b\u3068\u3044\u3046\u30a2\u30ec\u3067\u3059\u306d\u3002\u30a4\u30e1\u30fc\u30b8\u6e67\u304b\u306a\u3044\u65b9\u306f\u30ca\u30d9\u30a2\u30c4\u306e3\u306e\u4ed8\u304f\u6570\u5b57\u30683\u306e\u500d\u6570\u3067\u30d0\u30ab\u306b\u306a\u308b\u30cd\u30bf\u3092\u601d\u3044\u6d6e\u304b\u3079\u3066\u3044\u305f\u3060\u3051\u308c\u3070\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"fizzbuzz.py\" data-lang=\"Python\"><code>def fizzbuzz(number):\n    &quot;&quot;&quot;\n    3\u306e\u500d\u6570\u306a\u3089Fizz\u30015\u306e\u500d\u6570\u306a\u3089Buzz\u300115\u306e\u500d\u6570\u306a\u3089FizzBuzz\u3092\u51fa\u529b\u3059\u308b\n    Parameters\n    ----------\n    number : int\n        \u6570\u5024\n    \n    Returns\n    -------\n    ret : str, int\n        \u500d\u6570\u306b\u5bfe\u5fdc\u3059\u308b\u6587\u5b57\u5217\u3001\u3082\u3057\u304f\u306f\u5165\u529b\u3055\u308c\u305f\u6570\u5024\u305d\u306e\u3082\u306e\n    &quot;&quot;&quot;\n    if type(number) != int:\n        raise TypeError\n    if number % 15 == 0:\n        return &quot;FizzBuzz&quot;\n    if number % 5 == 0:\n        return &quot;Buzz&quot;\n    if number % 3 == 0:\n        return &quot;Fizz&quot;\n\n    return number\n\n\nif __name__ == &quot;__main__&quot;:\n    for i in range(1, 101):\n        print(fizzbuzz(i))<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9<\/h2>\n\n\n\n<p>\u30b7\u30f3\u30d7\u30eb\u306b\u901a\u5e38\u306e\u6570\u5024\u3092\u8fd4\u3059\u30b1\u30fc\u30b9\u3068Fizz\u3001Buzz\u3001FizzBuzz\u305d\u308c\u305e\u308c\u3092\u8fd4\u3059\u30b1\u30fc\u30b9\u3001\u3042\u3068\u30d1\u30e9\u30e1\u30fc\u30bf\u306b\u6570\u5024\u4ee5\u5916\u304c\u6e21\u3055\u308c\u305f\u4f8b\u5916\u30cf\u30f3\u30c9\u30eb\u306e\u30b1\u30fc\u30b9\u3082\u66f8\u3044\u3066\u307f\u307e\u3059\u3002 <code>exit=False<\/code> \u3068\u3057\u3066\u3044\u308b\u306e\u306fVSCode\u3067\u30c7\u30d0\u30c3\u30b0\u3057\u305f\u6642\u306b\u554f\u7b54\u7121\u7528\u3067\u7570\u5e38\u7d42\u4e86\u3059\u308b\u306e\u304c\u6c17\u6301\u3061\u60aa\u304b\u3063\u305f\u3068\u3044\u3046\u7cbe\u795e\u5b89\u5b9a\u5264\u7684\u306a\u610f\u5473\u5408\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"test_fizzbuzz.py\" data-lang=\"Python\"><code>import unittest\nfrom src.fizzbuzz import fizzbuzz\n\nclass FizzBuzzTest(unittest.TestCase):\n    &quot;&quot;&quot;\n    FizzBuzz\u306e\u30c6\u30b9\u30c8\u30af\u30e9\u30b9\n    &quot;&quot;&quot;\n    def setUp(self):\n        &quot;&quot;&quot;\n        \u30c6\u30b9\u30c8\u30d5\u30a3\u30af\u30b9\u30c1\u30e3\u306e\u6e96\u5099\u306e\u305f\u3081\u306b\u547c\u3073\u51fa\u3055\u308c\u308b\u30e1\u30bd\u30c3\u30c9\n        &quot;&quot;&quot;\n        return super().setUp()\n\n    def tearDown(self):\n        &quot;&quot;&quot;\n        \u30c6\u30b9\u30c8\u30e1\u30bd\u30c3\u30c9\u304c\u5b9f\u884c\u3055\u308c\u3001\u7d50\u679c\u304c\u8a18\u9332\u3055\u308c\u305f\u76f4\u5f8c\u306b\u547c\u3073\u51fa\u3055\u308c\u308b\u30e1\u30bd\u30c3\u30c9\n        &quot;&quot;&quot;\n        return super().tearDown()\n\n    def test_normal(self):\n        &quot;&quot;&quot;\n        \u6570\u5b57\u3092\u8fd4\u3059\u30b1\u30fc\u30b9\n        &quot;&quot;&quot;\n        self.assertEqual(1, fizzbuzz(1))\n\n    def test_fizz(self):\n        &quot;&quot;&quot;\n        Fizz\u3092\u8fd4\u3059\u30b1\u30fc\u30b9\n        &quot;&quot;&quot;\n        self.assertEqual(&quot;Fizz&quot;, fizzbuzz(3))\n\n    def test_buzz(self):\n        &quot;&quot;&quot;\n        Buzz\u3092\u8fd4\u3059\u30b1\u30fc\u30b9\n        &quot;&quot;&quot;\n        self.assertEqual(&quot;Buzz&quot;, fizzbuzz(5))\n\n    def test_fizzbuzz(self):\n        &quot;&quot;&quot;\n        FizzBuzz\u3092\u8fd4\u3059\u30b1\u30fc\u30b9\n        &quot;&quot;&quot;\n        self.assertEqual(&quot;FizzBuzz&quot;, fizzbuzz(15))\n\n    def test_typeerror(self):\n        &quot;&quot;&quot;\n        TypeError\u3092\u8fd4\u3059\u30b1\u30fc\u30b9\n        &quot;&quot;&quot;\n        with self.assertRaises(TypeError):\n            fizzbuzz(&quot;abc&quot;)\n\n\nif __name__ == &quot;__main__&quot;:\n    unittest.main(exit=False)<\/code><\/pre><\/div>\n\n\n\n<p>\u3067\u3001\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plane\"><code>$ python -m unittest discover tests --verbose\ntest_buzz (test_fizzbuzz.FizzBuzzTest) ... ok\ntest_fizz (test_fizzbuzz.FizzBuzzTest) ... ok\ntest_fizzbuzz (test_fizzbuzz.FizzBuzzTest) ... ok\ntest_normal (test_fizzbuzz.FizzBuzzTest) ... ok\ntest_typeerror (test_fizzbuzz.FizzBuzzTest) ... ok\n\n----------------------------------------------------------------------\nRan 5 tests in 0.000s\n\nOK<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u4e16\u9593\u306f\u65b0\u5143\u53f7\u304c\u767a\u8868\u3055\u308c\u307e\u3057\u305f\u304c\u305d\u308c\u306f\u305d\u3046\u3068\u3057\u3066\u4eca\u56de\u306f unittest \u3068\u3044\u3046Python\u6a19\u6e96\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u5229\u7528\u3057\u3066\u5358\u4f53\u30c6\u30b9\u30c8\u3092\u66f8\u3044\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 \u30c6\u30b9\u30c8\u5bfe\u8c61 FizzBuzz\u3068\u3044\u3046\u30d3\u30ae\u30ca\u30fc\u958b\u767a\u8005\u306b\u3042\u308a\u304c\u3061\u306a\u8ab2\u984c\u3092 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1590,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"vkexunit_cta_each_option":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-1251","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=\/wp\/v2\/posts\/1251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1251"}],"version-history":[{"count":7,"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=\/wp\/v2\/posts\/1251\/revisions"}],"predecessor-version":[{"id":1788,"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=\/wp\/v2\/posts\/1251\/revisions\/1788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=\/wp\/v2\/media\/1590"}],"wp:attachment":[{"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.minatoproject.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}