MST

星途 面试题库

面试题:复杂条件下Python if与异常捕获的优化

假设你正在处理一个复杂的金融计算任务,需要对输入数据进行有效性检查和可能出现的计算错误处理。要求结合if语句和异常捕获,设计一个函数来实现这个功能,并且尽量优化代码的可读性和性能。输入数据可能是各种格式的数值,包括字符串形式的数字、浮点数等,计算可能涉及除法等会引发异常的操作。
27.5万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def financial_calculation(input_data):
    try:
        # 将输入数据转换为浮点数
        if isinstance(input_data, str):
            try:
                num = float(input_data)
            except ValueError:
                raise ValueError("输入的字符串无法转换为数字")
        elif isinstance(input_data, (int, float)):
            num = input_data
        else:
            raise TypeError("不支持的输入数据类型")

        # 示例计算:这里假设进行一个简单的除法计算
        if num == 0:
            raise ZeroDivisionError("除数不能为零")
        result = 100 / num

        return result

    except (ValueError, TypeError, ZeroDivisionError) as e:
        print(f"发生错误: {e}")
        return None