《python程序设计教程》第6章 函数的设计 习题6答案

您所在的位置:网站首页 python计算单利复利本金利息的方法 《python程序设计教程》第6章 函数的设计 习题6答案

《python程序设计教程》第6章 函数的设计 习题6答案

2023-07-23 11:24| 来源: 网络整理| 查看: 265

1.编写两个函数分别按单利和复利计算利息,根据本金、年利率、存款年限得到本息和和利息。调用这两个函数计算1000元在银行存3年,在年利率是6%的情况下,单利和复利分别获得的本息和和利息。单利计算指只有本金计算利息。复利计算是指不仅本金计算利息,利息也计算利息,也就是通常所说的“利滚利”。如这题按单利计算本息和1000+1000×6%×3=1180元,其中利息为180元;按复利计算本息和1000×(1+6%)3=1191.016元,其中利息为191.016元。

money = float(input("请输入存款本金为:")) year = int(input("请输入存款年份为:")) rate = float(input("请输入年利率为:")) def simple(): interest = money * rate * year total = money + interest print("单利计算利息为:", interest, "单利计算本息和为:", total) def compound(): total = money * (1 + rate) ** year interest = total - money print("复利计算利息为:", "%.3f"%interest, "复利计算本息和为:", total) simple() compound()

 2.编写函数,判断一个数是否为素数。调用该函数判断从键盘中输入的数是否为素数。素数也称质数,是指只能被1和它本身整除的数。

错误示例:

def function(x): for i in range(2, x): if x % i == 0: print(x, "不是素数") break else: print(x, "是素数") break n = int(input("请输入一个整数:")) function(n)

修正后: 

def function(x): for i in range(2, x): if x % i == 0: print(x, "不是素数") break else: print(x, "是素数") n = int(input("请输入一个整数:")) function(n)

常见的搭配是if…else…或者if…elif…else...诸如此类,但其实for也可以和else搭配出现。在这段代码里,else和if不是一对,而是和for并排的。当某一次遍历结果余数为0时,break生效,循环结束,与之成对出现的else代码也就不执行了;当所有遍历结束后没有一次余数为0时,循环就转到else开始执行。

参考文章链接:https://blog.csdn.net/Real_Tino/article/details/68947401

3.编写函数,求出一个数除了1和自身以外的因子。从键盘输入一个数,调用该函数输出除了1和它自身以外的所有因子。

def function(x): if x > 1: for i in range(2, x): if x % i == 0: print(i,end=" ") n = int(input("请输入一个整数:")) print("该数除了1和自身以外的因子为:") function(n)

4.编写函数,判断一个数是否为水仙花数。调用该函数打印出1000以内的所有水仙花数。水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:13+53+33=153,则153是水仙花数。水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。

def function(x): a = x // 100 b = (x - 100 * a) // 10 c = x - 100 * a - 10 * b if a ** 3 + b ** 3 + c ** 3 == x: print(x, end=" ") print("1000以内的水仙花数为:") for i in range(100, 1000): function(i)

5.编写函数求斐波拉契数列的前20项。斐波拉契数列的第1项和第2项分别是0和1,从第3项开始,每一项都是前两项之和。如:0,1,1,2,3,5,8,13,21…。试用递归函数实现。

def function(x): if x == 1: s = 0 elif x == 2: s = 1 else: s = function(x - 1) + function(x - 2) return s for i in range(1, 21): print("斐波拉契数列的第", str(i), "项为:", function(i))



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3