和大家分享自己完成的《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核心编程练习答案 非官方 博客园