開発環境
- 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 コメント:
コメントを投稿