python-函数的设计

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

(1)源代码:

# 单利函数

def simple(x, n):

    r = 0.06

    interest = x * r * n

    total = x + interest

    print("单利计算利息为:", interest, "单利计算本息和为:", total)

    return interest, total

# 复利函数

def compound(x, n):

    r = 0.06

    interest = x * (1 + r) ** n

    total = interest + x

    print("复利计算利息为:", interest, "复利计算本息和为:", total)

    return interest, total

c = float(input("请输入存款本金为:"))

d = int(input('请输入存款年份为:'))

r = 0.06

simple(c, d)

compound(c, d)

(2)运行结果截图 :

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

(1)源代码:

def function(x):

    if x > 2:

        for j in range(2, x // 2 + 1):

            if x % j == 0:

                print(x, "不是素数。")

                break

        else:

            print(x, "是素数")

n = int(input("请输入一个大于1的正整数:"))

function(n)

(2)运行结果截图 :

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

(1)源代码:

def function(x):

    if x >= 1:

        for i in range(1, x):

            if x % i == 0:

                print(i)

n = int(input("请输入一个整数:"))

function(n)

(2)运行结果截图 :

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

(1)源代码:

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)

(2)运行结果截图 :

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

(1)源代码:

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))

(2)运行结果截图 :

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值