和大家分享自己完成的《Python核心編程》答案。
因為不是來自官方資源,是自己的的練習,可能有誤或者並非最好的解決辦法。
5-16.
家庭財務。給定一個初始金額和月開銷數,使用迴圈,確定剩下的金額和當月的支出數,包括最後的支出數。Payment()函數會用到初始金額和月額度,輸出結果應該類似下面的格式(例子中的數字僅用於示範)。
Enter opening balance: 100.00
Enter monthly payment: 16.13
Amount Remaining
Pymt# Paid Balance
----- ---- -------
0 $ 0.00 $100.00
1 $16.13 $ 83.87
2 $16.13 $ 67.74
3 $16.13 $ 51.61
4 $16.13 $ 35.48
5 $16.13 $ 19.35
6 $16.13 $ 3.22
7 $ 3.22 $ 0.00
【答案】
代碼如下:
balance = float(raw_input("Enter opening balance: ... "))
payment = float(raw_input("Enter monthly payment: ... "))
pymt = 1
print ' Amount Remaining'
print 'Pymt# Paid Balance'
print '----- ------ -----------'
print '%4d%15.2f%15.2f' % (0, 0.00, 100)
while (balance - payment*pymt ) >= 0:
pymt = pymt + 1
print '%4d%15.2f%15.2f' % (pymt - 1, payment, (balance - payment*(pymt - 1)))
print '%4d%15.2f%15.2f' % (pymt, (balance - payment*(pymt - 1)), 0)
5-17.
*隨機數。熟讀隨機數模組然後解下面的題。產生一個有N個元素的由隨機數n組成的列表,其中N和n的取值範圍分別為(1 < N <= 100)和(0 <= n <= 2**31 - 1)。然後再隨機從這個列表中取N(1 <= N <= 100)個隨機數出來,對他們排序,然後顯示這個子集。
【答案】
代碼如下:
import random
big_n = random.randint(1, 101)
list = range(big_n)
for i in range(big_n):
list[i] = random.randint(-1, 2**31)
print big_n
print list
list.sort()
print list
【參考】列表(list)和字典(dict)資料排序
http://www.javaeye.com/topic/117279
Python 列表(list)操作
http://www.pythonclub.org/python-basic/list
python中的列表排序操作
http://www.ej38.com/showinfo/Python-108670.html
Python隨機數模組的相關模組代碼的具體介紹
http://developer.51cto.com/art/201003/190410.htm
【推薦】Capricorn的實驗室 軟體測試工作者的blog
http://www.cnblogs.com/yd1227/
關鍵詞:Pyhon核心編程練習答案 非官方 部落格園