python自定义函数求最大值

img


想问下画绿圈的部分应该填什么,不太明白这个,python自定义函数求两个数中的最大值

print里的max改为mymax(m,n)

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7548196
  • 你也可以参考下这篇文章:python将每一次变量值赋给矩阵,矩阵分块从大矩阵中遍历固定大小的所有小矩阵
  • 同时,你还可以查看手册:python- 预定义的清理操作 中的内容
  • 除此之外, 这篇博客: Python函数和函数式编程(两万字长文警告!一文彻底搞定函数,建议收藏!)中的 8.7.3带自定义参数的函数装饰器 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 其实,函数装饰器还有更大程度的灵活性。刚刚说了,装饰器可以接受原函数任意类型和数量的参数,除此之外,它还可以接受自己定义的参数。

    举个例子,比如要定义一个参数,来表示装饰器内部函数被执行的次数,那么就可以写成下面这种形式:

    def foo(num):
        def my_decorator(fn):
            def bar(*args,**kwargs):
                for i in range(num):
                    fn(*args,**kwargs)
            return bar
        return my_decorator
    @foo(3)
    def my_test(a):
        print("==my_test函数==", a)
    @foo(5)
    def new_test(a,b):
        print("==new_test函数==",a," ",b)
    my_test(10)
    new_test(6, 5)
    

    运行结果为:

    == my_test函数== 10
    == my_test函数== 10
    == my_test函数== 10
    == new_test函数== 6 5
    == new_test函数== 6 5
    == new_test函数== 6 5
    == new_test函数== 6 5
    == new_test函数== 6 5

  • 您还可以看一下 jeevan老师的Python量化交易,大操手量化投资系列课程之内功修炼篇课程中的 基础编程之股票行情构造小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    回答:

    这里提供一个简单的例子,自定义了一个函数取两个数的最大值:

    def max_number(num1, num2):
        """取两个数的最大值"""
        if num1 >= num2:
            return num1
        else:
            return num2
    

    通过这个例子,我们可以发现,自定义一个函数的步骤:

    1. 定义函数名,提供函数说明。
    2. 规定函数的参数,包括数量、类型和顺序。
    3. 编写函数内容。
    4. 返回值,表明函数的返回结果。

    因此,在自定义求取两个数最大值的函数中,需要明确该函数需要接收两个参数,同时我们可以根据函数的作用,规定参数为数字类型。然后,在函数内容中,我们可以通过if/else条件语句,比较两个数的大小,返回较大的那个数。这样,我们就可以自定义一个求取两个数最大值的函数了。

    例如,以下代码就是一个自定义求取两个数最大值的函数:

    def max_number(num1, num2):
        """
        求取两个数的最大值。
        参数:num1, num2 两个数字。
        返回值:两个数字中的最大值。
        """
        if num1 >= num2:
            return num1
        else:
            return num2
    

    如果需要使用该函数,调用方法如下:

    max_num = max_number(5, 9)
    print(max_num)  # 输出结果为 9
    

    如果需要比较更多的数字,我们可以使用可变参数的方式,定义一个函数接收任意数量的参数,并在函数内部遍历比较大小,返回最大值。

    def max_number(*numbers):
        """
        求取多个数字中的最大值。
        参数:任意数量的数字。
        返回值:多个数字中的最大值。
        """
        max_num = float('-inf')  # 首先将最大值设为负无穷
        for num in numbers:
            if num > max_num:
                max_num = num
        return max_num
    

    如果需要求取最小值,只需要将初始值设为正无穷即可。

    参考资料中第二部分讲到如何对列表中的数字进行排序,并找出丢失的数据。这里提供了一个函数 digital_computation() 实现了该功能。对于每个列表的排序和查找缺失数据,我们可以通过使用标准库 sorted() (默认升序排序)或 sort()(原地升序排序)来实现。

    def compute_lost_value(numbers):
        """
        排序后找出缺失的数。
        参数:numbers 为数字列表。
        返回值:排序后第一个丢失值。
        """
        numbers.sort()  # 对列表进行排序
        for i in range(len(numbers) - 1):
            if numbers[i+1] - numbers[i] != 1:
                return numbers[i] + 1
        return numbers[-1] + 1  # 如果没有丢失的数据,返回最大值加一
    
    num_list = [1, 2, 3, 5, 6, 7]
    num_list1 = [1, 2, 4, 5, 6, 7]
    num_list2 = [1, 2, 3, 4, 6, 7]
    print(compute_lost_value(num_list))  # 输出结果为 4
    print(compute_lost_value(num_list1))  # 输出结果为 3
    print(compute_lost_value(num_list2))  # 输出结果为 5
    

    需要注意的是,该函数需要传递一个数字列表作为参数,并且默认从小到大排序。另外,如果列表中不存在丢失的数据,算法会返回最大值加一,这个需要根据情况进行判断和处理。