• Python150题day14


    3.内置函数篇

    3.1 abs

    abs函数返回数字的绝对值,请实现下面的函数,模仿abs函数的功能,返回数字的绝对值

    def my_abs(number):

            pass

    代码:

    def my_abs(number):

            if not isinstance(number, (float, int)):

                     return number

            if number < 0:

                    number *= -1

            return numbe

    思路:

    处于程序健壮性考虑,要对传入的number参数进行检查,判断其类型是否为数字类型,float和int是比较常用的数据类型,复数类型基本接触不到,因此不考虑。
    判断变量类型,可以使用isinstance函数,该函数的第一个参数是需要检查类型的对象,第二个参数可以是数据类型,也可以是一个元组,元组里是多个数据类型,只要满足其中一个就返True
    如果number的数值小于0,乘以-1就得到了绝对值

    3.2 sum

    sum函数可以获取列表所有数据的综合,模仿这个功能实现下面的函数

    def my_sum(lst):

            """

            返回列表⾥所有数据的总和

            如果列表⾥有⾮数字类型的数据,忽略不管

            :param lst:

            :return:

            """

            pass

    代码:

    def my_sum(lst):

    sum_res = 0

    if not isinstance(lst, list):

            return sum_res

    for item in lst:

            if isinstance(item, (float, int)):

                    sum_res += item

    return sum_res

    思路:

    ①对传入的参数lst,要进行类型检查

    ②遍历列表,遇到数字类型的数据就进行加和操作

    3.3 max

    max函数返回序列中的最大值,传入的参数可以是列表,也可以是元组,实现下面的函数,实现同样的功能,如果序列里有非数字类型的数据,可以忽略,如果序列是空的,可以直接返回None

    def my_max(seq):

            """

            返回序列⾥的最⼤值

            :param lst:

            :return:

            """

    代码:

    def my_max(seq):

            max_value=None

            if not isinstance(seq,(list,tuple)):

                    return  max_value

            if len(seq)=0:

                    return max_value

            max_value=seq[0]

            for item in seq:

                    if not isinstance(item,(int,float)):

                            continue

                    if item>max_value:

                            item=max_value

            return max_value

    思路:

    ①对传入的参数seq需要进行类型检查,如果既不是列表也不是元组,那么就返回None

    ②如果序列是空的,也直接返回None

    ③ 遍历序列中的元素,如果数据的类型不属于数字类型,那么就忽略跳过

    3.4 min

    min函数返回序列中的最小值,传入的参数可以是列表,也可以是元组,实现下面的函数,实现同样的功能,如果序列里又非数字类型的数据,可以忽略

    def my_min(seq):

            """

            返回序列⾥的最⼩值

            :param lst:

            :return:

            """

            pass

    代码(与max类似):

    def my_min(seq):

            min_value=None

            if not isinstance(seq,(list,tuple)):

                    return  min_value

            if len(seq)=0:

                    return min_value

            min_value=seq[0]

            for item in seq:

                    if not isinstance(item,(int,float)):

                            continue

                    if item

                            item=min_value

            return min_value

    思路(与max一致):

    ①对传入的参数seq需要进行类型检查,如果既不是列表也不是元组,那么就返回None

    ②如果序列是空的,也直接返回None

    ③ 遍历序列中的元素,如果数据的类型不属于数字类型,那么就忽略跳过

  • 相关阅读:
    CentOS7二进制安装和YUM安装mongodb,服务器无法安装5.0以上的 mongodb 数据库报错 Illegal instruction
    java-php-python-会议查询系统计算机毕业设计
    2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷7(私有云)
    前端CodeReivew实践 | 京东云技术团队
    Vue--Router--router-link与this.$router.push--使用/区别
    前缀和与差分
    【数据结构趣味多】顺序表基本操作实现(Java)
    金仓KFS数据级联场景部署
    Fury:一个基于JIT动态编译的高性能多语言原生序列化框架
    华为云中对象存储服务软件开发工具包(OBS SDK) C语言介绍
  • 原文地址:https://blog.csdn.net/qq_62928039/article/details/133673801