Ti-84 Plus CE计算器运行Python二次方程代码出现数学错误的解决方法
解决TI-84 Plus CE Python环境下二次方程求解的数学错误问题
问题分析
你的代码在TI-84 Plus CE上触发数学错误,核心原因有两点:
- 未处理a=0的边界情况:当输入的二次项系数
a=0时,方程退化为一次方程,此时代码中(2 * a)等于0,会触发除以0的数学错误。 - 复数根显示逻辑不完整:原代码在判别式为负时,仅拼接了
(-b±i)的形式,遗漏了根号下判别式绝对值的部分,虽然这不是报错直接原因,但会导致结果显示错误。
修复后的代码
import math a = int(input("co-efficient of x^2: ")) b = int(input("co-efficient of x: ")) c = int(input("constant: ")) # 处理a=0的一次方程情况 if a == 0: if b == 0: print("Infinite solutions" if c == 0 else "No solution") else: x = -c / b print(f"One solution: {x}") else: discriminant = b**2 - 4*a*c if discriminant >= 0: rootPart = math.sqrt(discriminant) x1 = (-b + rootPart) / (2 * a) x2 = (-b - rootPart) / (2 * a) print(f"{x1}, {x2}") else: # 正确计算并显示复数根 sqrt_abs_disc = math.sqrt(-discriminant) real_part = -b / (2 * a) imag_part = sqrt_abs_disc / (2 * a) print(f"{real_part}+{imag_part}i, {real_part}-{imag_part}i")
修复说明
- 增加a=0的判断:提前拦截非二次方程的输入,处理一次方程的各种分支(有唯一解、无解、无数解),避免除以0的错误。
- 优化复数根显示:正确计算复数根的实部和虚部,完整展示
实部±虚部i的标准形式,结果更准确。 - 适配TI-84环境:TI-84 Plus CE的Python基于MicroPython,对输入合法性要求严格,提前处理边界情况可避免大部分运行时错误。
内容的提问来源于stack exchange,提问作者elang
相关产品推荐
相关产品推荐

