You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何检查两数整除性并处理非法输入?

改进Python整除检查函数的类型验证方案

原函数仅能处理整数输入,遇到字符串、复数等非有效数字会直接报错。我们可以在取模操作前添加类型校验逻辑,不符合要求则返回None,同时处理分母为0的异常情况:

def Q1(numerator, denominator):
    # 校验输入是否为整数或浮点数
    valid_num_types = (int, float)
    if not (isinstance(numerator, valid_num_types) and isinstance(denominator, valid_num_types)):
        return None
    
    # 可选:排除布尔类型(因bool是int子类,若不需要将True/False视为数字可保留)
    if type(numerator) is bool or type(denominator) is bool:
        return None
    
    # 避免分母为0的错误
    if denominator == 0:
        return None
    
    # 执行整除判断
    return numerator % denominator == 0

关键逻辑说明

  • 类型校验:通过isinstance判断输入是否属于int或float类型,直接过滤字符串、复数等无效输入。
  • 布尔值过滤:如果不需要把True(等价于1)、False(等价于0)当作有效数字,可保留这一步判断;若允许则删除即可。
  • 分母非零检查:提前拦截分母为0的情况,避免运行时抛出ZeroDivisionError。
  • 整除判断:核心逻辑保留原函数的取模运算,返回是否整除的布尔结果。

测试示例

  • Q1(15, 5) → True
  • Q1(15, 4) → False
  • Q1("15", 5) → None
  • Q1(15, 0) → None
  • Q1(7+2j, 3) → None

内容的提问来源于stack exchange,提问作者LightningFz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:02:37