2013年11月5日火曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の6章(条件分岐)、6.5(練習問題)、5を解いてみる。

6.5(練習問題)、5.

コード(BBEdit)

sample.py

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

print('5.')

print('自動カメラのスイッチをオンにするのはどちらかのみがTrueの場合なので、\
排他的論理和であり、条件のどちらかのみがTrueということは、2つの条件の真偽値\
が異なればいいので、友達の言っていることは正しい。')
def xor1(light, temperature):
    if (light < 0.01) or (temperature > 0.0):
        if (light < 0.01) and (temperature > 0.0):
            pass
        else:
            return 'on'

def xor2(light, temperature):
    if (light < 0.01) != (temperature > 0.0):
        return 'on'
        
for light, temperature in [(0.001, -1.0), (0.001, 1.0), (0.01, -1.0),
                           (0.01, 1.0)]:
    print('light = {0}, temperature = {1} 自動カメラのスイッチ {2} {3}'.format(
        light, temperature,
        xor1(light, temperature), xor2(light, temperature)))

入出力結果(Terminal)

$ ./sample.py
5.
自動カメラのスイッチをオンにするのはどちらかのみがTrueの場合なので、排他的論理和であり、条件のどちらかのみがTrueということは、2つの条件の真偽値が異なればいいので、友達の言っていることは正しい。
light = 0.001, temperature = -1.0 自動カメラのスイッチ on on
light = 0.001, temperature = 1.0 自動カメラのスイッチ None None
light = 0.01, temperature = -1.0 自動カメラのスイッチ None None
light = 0.01, temperature = 1.0 自動カメラのスイッチ on on
$

0 コメント:

コメントを投稿