2013年12月17日火曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-13.を解いてみる。

12.7(練習問題)、12-13.

Noneと数値を比較しているから問題が発生する。

修正。

コード(BBEdit)

sample.py

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

import random

def find_min_max(values):
    if len(values) == 0:
        raise Exception("空っぽ")
    min = values[0]
    max = values[0]
    for value in values[1:]:
        if value > max:
            max = value
        if value < min:
            min = value
    print('最小値は{}です。'.format(min))
    print('最大値は{}です。'.format(max))

values = [random.randint(0, 100) for x in range(10)]

if __name__ == '__main__':
    print(values)
    find_min_max(values)
    try:
        print([])
        find_min_max([])
    except Exception as err:
        print(err)

入出力結果(Terminal)

$ ./sample.py
[3, 24, 20, 81, 79, 84, 58, 47, 95, 21]
Traceback (most recent call last):
  File "./sample.py", line 21, in <module>
    find_min_max(values)
  File "./sample.py", line 10, in find_min_max
    if value > max:
TypeError: unorderable types: int() > NoneType()
$ ./sample.py
[22, 77, 4, 40, 85, 7, 51, 72, 81, 80]
最小値は4です。
最大値は85です。
[]
空っぽ
$

0 コメント:

コメントを投稿