2012年5月10日木曜日

初めてのコンピュータサイエンス第2章解答

Pythonの演習ということで、解答をあげてみます。以下ネタバレなので、読みたくない方は立ち去りましょう。問題文は載せませんので悪しからず。

1

>>> 9 - 3
6
>>> 8 * 2.5 # 実数を含むので答えも実数
20.0
>>> 9 / 2
4
>>> 9 / -2 # 切捨てが入る -4.5 -> -5 になる
-5
>>> 9 % 2
1
>>> 9 % -2 # 剰余の符号は2番目の値の符号に依存する
-1
>>> -9 % 2
1
>>> 9 / 2.0
4.5
>>> 4 + 3 * 5 # 演算子の順位は通常の演算と同じ(足し算より掛け算優先)
19
>>> (4 + 3) * 5
35

2

xが-17のとき+xは-17であるべき。+1 * x と考えている。

3

>>> temp = 24
>>> temp = temp * 1.8 + 32
>>> temp
75.2

4

>>> x = 10.5
>>> y = 4
>>> x = x + y
>>> x
14.5
>>> y
4

5

x-xを最初に評価して0、次にx += 0を評価するのでxが3であれば、x = x + 0 = 3になる。

6

関数名は長すぎるとタイピングが面倒(IDEを利用すれば楽だが読みづらい)、短すぎると意味が何通りにも取れる恐れがある。 またコードを読むという観点で見たときには、関数名に含まれる英単語がわかる状態が望ましい。トレードオフの関係にある。 個人的にはfahr_to_cel、fahrenheit_to_celsius程度が望ましいと思われる。_to_を2にするのは英語圏オンリーならありかなと 思います。

7

# -*- encoding: utf-8 -*-
def convert_mileage(mpg):
    # 1米ガロン = 3.78541178 l
    # 1マイル = 1.609344 km
    return 3.78541178 * 100 / ( 1.609344 * mpg )

print convert_mileage(20)
print convert_mileage(40)

8

仮引数は関数が呼び出されるときに値が設定される変数で、実引数は関数を呼び出したときに実際に入れられる値。

9

c)の答えは30、d)の答えはconvert_mileage関数である。

def liters_needed(distance, fuelEfficiency):
    return distance * convert_mileage(fuelEfficiency) / 100

print liters_needed(150, 30)
print liters_needed(100, 30)

10

>>> pow(3, 7)
2187
>>> int(34.7)
34
>>> round(34.7)
35.0
>>> float(abs(-86))
86.0

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計