square函数错误排查:输入数值返回平方,非数值返回None
问题分析与修复
现有代码存在两个核心错误:
- 逻辑完全偏离需求:用奇偶判断决定返回值,奇数直接返回
None,这和“数值类型返回平方”的要求完全不符;就算是偶数,返回的x**x是x的x次方,并非平方(平方是x**2)。 - 缺少类型校验:没有判断输入是否为整数/浮点数,不满足“非数值类型返回'None'”的要求。
修复后的代码
def square(x): # 判断输入是否为整数或浮点数类型 if isinstance(x, (int, float)): return x ** 2 # 非数值类型返回字符串"None" return "None" print(square(5)) # 输出:25 print(square("test")) # 输出:None print(square(2.5)) # 输出:6.25
关键说明
- 用
isinstance(x, (int, float))精准校验输入类型,覆盖整数和浮点数场景 - 平方运算用
x**2或x*x均可,效果一致 - 非数值类型直接返回字符串"None",严格匹配需求
内容的提问来源于stack exchange,提问作者Mohammad Amir
相关产品推荐
相关产品推荐

