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

Python函数使用input()为默认参数已收集输入无输出原因排查

问题原因
  • 函数未调用:当前代码仅完成了quadratic_solver函数的定义,没有补充函数调用逻辑,函数内部的计算代码永远不会执行,因此不会输出计算结果。
  • 输入类型不匹配:input()方法的返回值默认是字符串类型,代码中未做类型转换就直接用于数值计算,就算调用函数也会直接抛出类型错误,无法正常输出结果。
  • 默认参数逻辑异常:Python的函数默认参数是在函数定义阶段完成计算的,因此程序启动后就会直接触发三次输入询问,而非每次调用函数时才触发,不符合常规的功能设计预期。
  • 额外的计算逻辑瑕疵:原有代码的复数根计算逻辑有误,虚部未除以2*a,就算前面的问题都修复,输出的复数根结果也是错误的。
修复方案

调整输入获取逻辑的位置,补充类型转换和函数调用代码,同时修正复数根计算逻辑,修复后的完整代码如下:

import math

def quadratic_solver(a, b, c):
    # 转换为浮点型保证计算精度
    a = float(a)
    b = float(b)
    c = float(c)
    dis = b * b - 4 * a * c 
    sqrt_val = math.sqrt(abs(dis)) 
   
    if dis > 0: 
        print("两个不同实根:")
        print((-b + sqrt_val)/(2 * a)) 
        print((-b - sqrt_val)/(2 * a)) 
      
    elif dis == 0: 
        print("一个实根:")
        print(-b / (2 * a)) 
      
    else:
        print("两个共轭复根:")
        print(-b / (2 * a), " + i", sqrt_val / (2 * a)) 
        print(-b / (2 * a), " - i", sqrt_val / (2 * a)) 

# 函数调用前获取用户输入
a = input("Enter the value of a ")
b = input("Enter the value of b ")
c = input("Enter the value of c ")
# 调用函数执行计算
quadratic_solver(a, b, c)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 16:03:00