MST

星途 面试题库

面试题:Python函数返回值的多种形式考察

请编写一个Python函数,该函数接受一个列表作为参数。如果列表为空,返回None;如果列表中所有元素都是数字类型(int或float),返回这些数字的总和;否则,返回一个包含列表中所有非数字元素的新列表。请给出完整的函数代码,并说明函数返回值类型的判断逻辑。
29.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def process_list(lst):
    if not lst:
        return None
    all_numbers = True
    result = 0
    non_numbers = []
    for item in lst:
        if not isinstance(item, (int, float)):
            all_numbers = False
            non_numbers.append(item)
        else:
            result += item
    if all_numbers:
        return result
    else:
        return non_numbers

返回值类型判断逻辑

  1. 列表为空:如果传入的列表lst为空,根据题目要求直接返回None,类型为NoneType
  2. 所有元素为数字类型:遍历列表lst,如果所有元素都是intfloat类型,将所有数字相加并返回这个总和,返回值类型为intfloat(取决于列表中的元素类型,如果列表中有float类型元素,总和就是float类型;否则为int类型)。在遍历过程中,使用isinstance(item, (int, float))判断每个元素是否为数字类型。
  3. 存在非数字元素:如果在遍历过程中发现有非数字类型的元素,将所有非数字元素收集到一个新列表中并返回,返回值类型为list