開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc., Emacs(Text Editor)
- プログラミング言語: Python
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の7章(反復)の7.7(練習問題)を解いてみる。
1.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- 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 values = [1, 2, 3, 4, 5] print(values) double_preceding(values) print(values)
入出力結果(Terminal)
$ ./sample.py [1, 2, 3, 4, 5] [0, 2, 4, 6, 8] $
2.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- def f(rat_1, rat_2): if rat_1[0] > rat_2[0]: print("Rat 1 weighed more than Rat 2 on Day 1.") else: print("Rat 1 weighed less than Rat 2 on Day 1.") def g(rat_1, rat_2): if rat_1[0] > rat_2[0] and rat_1[-1] > rat_2[-1]: print("Rat 1 remained heavier than Rat 2.") else: print("Rat 2 became heavier than Rat 1.") def h(rat_1, rat_2): if rat_1[0] > rat_2[0]: if rat_1[-1] > rat_2[-1]: print("Rat 1 remained heavier than Rat 2") else: print("Rat 2 became heavier than Rat 1.") else: print("Rat 2 became heavier than Rat 1.") rat_1 = [10] * 10 rat_2 = [20] * 10 for func in [f, g, h]: func(rat_1, rat_2) func(rat_2, rat_1)
入出力結果(Terminal)
$ ./sample.py Rat 1 weighed less than Rat 2 on Day 1. Rat 1 weighed more than Rat 2 on Day 1. Rat 2 became heavier than Rat 1. Rat 1 remained heavier than Rat 2. Rat 2 became heavier than Rat 1. Rat 1 remained heavier than Rat 2 $
3, 4, 5.
入出力結果(Terminal)
$ python Python 3.3.0 (default, Sep 29 2012, 08:16:08) [GCC 4.2.1 Compatible Apple Clang 3.1 (tags/Apple/clang-318.0.58)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> for x in range(33, 50): ... print(x) ... 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 >>> for x in range(10, 0, -1): ... print(x,end=" ") ... 10 9 8 7 6 5 4 3 2 1 >>> >>> total = 0 >>> for x in range(2, 23): ... total += x ... >>> total / len(range(2, 23)) 12.0 >>> quit() $
6.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- def remove_neg(num_list): i = 0 while i < len(num_list): if num_list[i] < 0: num_list.pop(i) else: i += 1 num_list = [1, 2, 3, -3, 6, -1, -3, 1] print(num_list) remove_neg(num_list) print(num_list)
入出力結果(Terminal)
$ ./sample.py [1, 2, 3, -3, 6, -1, -3, 1] [1, 2, 3, 6, 1] $
7, 8, 9.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- for x in range(7): res = "" for y in range(x + 1): print("T", end="") print() for x in range(7): for y in range(6 - x): print(" ", end="") for y in range(x + 1): print("T", end="") print() x = 0 while x < 7: y = 0 while y < x + 1: print("T", end="") y += 1 print() x += 1 x = 0 while x < 7: y = 0 while y < 6 - x: print(" ", end="") y += 1 y = 0 while y < x + 1: print("T", end="") y += 1 print() x += 1
入出力結果(Terminal)
$ ./sample.py T TT TTT TTTT TTTTT TTTTTT TTTTTTT T TT TTT TTTT TTTTT TTTTTT TTTTTTT T TT TTT TTTT TTTTT TTTTTT TTTTTTT T TT TTT TTTT TTTTT TTTTTT TTTTTTT $
10.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- rat_1_weight = 10 rat_2_weight = 10 rat_1_rate = 0.04 rat_2_rate = 0.04 res = rat_1_weight * 1.25 i = 0 while rat_1_weight < res: rat_1_weight *= 1 + rat_1_rate i += 1 print(i) rat_1_weight = 10 rat_1_rate = rat_2_rate + 0.03 i = 0 while rat_1_weight < rat_2_weight * 1.1: i += 1 rat_1_weight *= 1 + rat_1_rate rat_2_weight *= 1 + rat_2_rate print(i)
入出力結果(Terminal)
$ ./sample.py 6 4 $
0 コメント:
コメントを投稿