Python两数乘积或和计算函数输出不符预期问题排查
整数判断逻辑代码排查
首先修正语法错误
Python里的小于等于比较运算符是连续无空格的<=,你代码里写成了带空格的< =,这种写法会直接抛出语法错误,代码无法正常执行。如果你的本地环境跑出了结果,说明实际运行的代码存在输入笔误,请先把判断行修正为:
if product <= 1000:
逻辑匹配度验证
修正语法错误后,你写的代码逻辑完全符合给出的需求规则:
- 入参20、30时,乘积为600,小于等于1000,返回600,和预期输出一致
- 入参50、10时,乘积为500,小于等于1000,按规则应该返回乘积500,也就是你实际跑出的结果是符合需求的。
关于第二个用例预期为60的说明
根据数学计算规则,两个整数相加和为60时,能取到的最大乘积是30*30=900,永远小于1000,根本不可能触发“乘积大于1000返回两数之和”的分支。如果题目给出第二个用例的预期结果是60,只可能是三类问题:
- 测试用例参数笔误:比如第二个入参不是10,但即使调整参数,要让返回值为60(也就是两数和为60),乘积永远达不到1000的阈值
- 规则阈值笔误:比如要求的阈值不是1000,而是小于500的数(例如阈值为500,判断规则为小于500返回乘积,否则返回和,会得到第二个结果60,但此时第一个用例600大于500返回和50,和第一个预期结果冲突)
- 预期结果本身笔误:把正确结果500误写为60
验证可用的完整代码
def multiplication_or_sum(num1, num2): product = num1 * num2 if product <= 1000: return product else: return num1 + num2 result = multiplication_or_sum(20,30) print("The result is = ", result) result = multiplication_or_sum(50,10) print("The result is = ", result)
运行后输出为:
The result is = 600 The result is = 500
完全匹配需求描述的规则。
内容的提问来源于stack exchange,提问作者Khalilomorph
相关产品推荐
相关产品推荐

