2019年7月7日日曜日

開発環境

Head First はじめてのプログラミング ―頭とからだで覚えるPythonプログラミング入門 (Eric Freeman(著)、嶋田 健志(監修)、木下 哲也(翻訳)、株式会社オライリー・ジャパン)を6章(テキスト、文字列、ヒューリスティック - すべてを組み合わせる)の自分で考えてみよう(258ページ)の解答を求めてみる。

コード

Python 3

sample2_test.py

#!/usr/bin/env python3
from unittest import TestCase, main
from sample2 import count_sentences, my_count_sentences


class MyTestCase(TestCase):
    def setUp(self):
        self.texts = ['', 'a', 'a.  ', 'a. b! cd? efg; h.']
        self.counts = [0, 0, 1, 5]

    def tearDown(self):
        pass

    def test_count_sentences(self):
        for text, count in zip(self.texts, self.counts):
            self.assertEqual(count_sentences(text), count)

    def test_count_sentences1(self):
        for text, count in zip(self.texts, self.counts):
            self.assertEqual(my_count_sentences(text), count)


if __name__ == '__main__':
    main()

sample2.py

#!/usr/bin/env python3
def count_sentences(text):
    count = 0
    for char in text:
        if char in '.;?!':
            count += 1
    return count


def my_count_sentences(text):
    return len([char for char in text if char in '.;?!'])

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

C:\Users\...>py sample2_test.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

C:\Users\...>

0 コメント:

コメントを投稿