Python高阶函数与账户类设计实践

20、修改程序以接受浮点数而非简单整数。

若要使程序接受浮点数而非整数,可使用 float() 函数转换输入。如原本使用 int(input()) 获取整数输入,可将其替换为 float(input()) 。示例如下:

原程序用

age = int(input('请输入你的年龄:'))

获取整数年龄,修改后用

age = float(input('请输入你的年龄:'))

获取浮点型年龄;

若要用户输入汇率,可使用

exchange_rate = float(input('请输入要使用的汇率:'))

21、你应该编写一个名为 my_higher_order_function(i, func) 的高阶函数。这个函数接受一个参数和一个要应用于该参数的函数。

以下是实现该高阶函数的 Python 代码:

def my_higher_order_function(i, func):
    return func(i)

22、编写一个高阶函数 my_higher_order_function ,该函数接受两个参数:一个整数或字符串 i 和一个函数 func ,并返回 func(i) 的结果。同时编写以下辅助函数,每个函数都接受一个参数:1. double 函数:将输入的数字乘以 2。2. triple 函数:将输入的数字乘以 3。3. square_root 函数:计算输入数字的平方根。4. is_prime 函数:判断输入的数字是否为质数。5. is_integer 函数:判断输入的字符串是否可以转换为整数。6. is_letter 函数:判断输入的字符串是否为单个字母。最后编写测试代码调用 my_higher_order_function 函数,分别传入不同的参数进行测试。

以下是实现上述要求的 Python 代码:

import math

def my_higher_order_function(i, func):
    return func(i)

def double(num):
    return num * 2

def triple(num):
    return num * 3

def square_root(num):
    return math.sqrt(num)

# 判断是否为质数的函数
def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            return False
    return True

# 判断是否为整数的函数
def is_integer(s):
    try:
        int(s)
        return True
    except ValueError:
        return False

# 判断是否为字母的函数
def is_letter(s):
    return len(s) == 1 and s.isalpha()

print(my_higher_order_function(2, double))
print(my_higher_order_function(2, triple))
print(my_higher_order_function(16, square_root))
print(my_higher_order_function(2, is_prime))
print(my_higher_order_function(4, is_prime))
print(my_higher_order_function('2', is_integer))
print(my_higher_order_function('A', is_integer))
print(my_higher_order_function('A', is_letter))
print(my_higher_order_function('1', is_letter))

23、现在定义一个函数,该函数可以根据汇率将一个金额转换为另一个金额。这个转换函数的定义非常直接,只需要将数字乘以汇率即可。请用 Python 实现该函数。

以下是实现该功能的 Python 代码:

# 定义转换函数
def convert_amount(amount, exchange_rate):
    return amount * exchange_rate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值