開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg 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 コメント:
コメントを投稿