2014年11月13日木曜日

開発環境

Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) (Paul Gries (著)、Jennifer Campbell (著)、Jason Montojo (著)、Lynn Beighley (編集)、Pragmatic Bookshelf)のChapter 15(Testing and Debugging)、15.7(Exercises) 5.を解いてみる。

15.7(Exercises) 5.

コード(BBEdit)

sample5.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def find_min_max(values):
    """ (list) -> NoneType
    Print the minimum and maximum value from values.
    >>> find_min_max([])
    The minimum value is None
    The maximum value is None
    >>> find_min_max([2])
    The minimum value is 2
    The maximum value is 2
    >>> find_min_max([5, 10])
    The minimum value is 5
    The maximum value is 10
    >>> find_min_max([10, 5])
    The minimum value is 5
    The maximum value is 10
    >>> find_min_max([1, 5, 2, 4, 3, 5, 1, 4, 2, 3])
    The minimum value is 1
    The maximum value is 5
    """
    min = None
    max = None
    if values != []:
        min = values[0]
        max = values[0]
        for value in values[1:]:
            if value > max:
                max = value
            if value < min:
                min = value
    print('The minimum value is {0}'.format(min))
    print('The maximum value is {0}'.format(max))

if __name__ == '__main__':
    import doctest
    doctest.testmod()

入出力結果(Terminal, IPython)

$ ./sample5.py -v
Trying:
    find_min_max([])
Expecting:
    The minimum value is None
    The maximum value is None
ok
Trying:
    find_min_max([2])
Expecting:
    The minimum value is 2
    The maximum value is 2
ok
Trying:
    find_min_max([5, 10])
Expecting:
    The minimum value is 5
    The maximum value is 10
ok
Trying:
    find_min_max([10, 5])
Expecting:
    The minimum value is 5
    The maximum value is 10
ok
Trying:
    find_min_max([1, 5, 2, 4, 3, 5, 1, 4, 2, 3])
Expecting:
    The minimum value is 1
    The maximum value is 5
ok
1 items had no tests:
    __main__
1 items passed all tests:
   5 tests in __main__.find_min_max
5 tests in 2 items.
5 passed and 0 failed.
Test passed.
$

0 コメント:

コメントを投稿