2013年11月12日火曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の7章(反復)、7.7(練習問題)、1を解いてみる。

7.7(練習問題)、1.

問題の関数は元のリスト内の前の値の2倍ではなく、新しいリスト内の前の値の2倍に書き換えることになる。

修正。

コード(BBEdit)

sample.py

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

def double_preceding_bug(values):
    if values == []:
        pass
    else:
        temp = values[0]
        values[0] = 0
    for i in range(1, len(values)):
        values[i] = 2 * temp
        temp = values[i]

def double_preceding(values):
    if values == []:
        pass
    else:
        temp = values[0]
        values[0] = 0
        for i in range(1, len(values)):
            temp2 = values[i]
            values[i] = 2 * temp
            temp = temp2

values1 = list(range(1, 6))
values2 = list(range(1, 6))
print(values1)
print('修正前')
double_preceding_bug(values1)
print(values1)
print('修正後')
double_preceding(values2)
print(values2)

入出力結果(Terminal)

$ ./sample.py
[1, 2, 3, 4, 5]
修正前
[0, 2, 4, 8, 16]
修正後
[0, 2, 4, 6, 8]
$

0 コメント:

コメントを投稿