我试着制作一个程序来获取二次方程中变量的输入并打印根。
import math
def quadratic_solver(a = input("Enter the value of a "), b = input("Enter the value of b "), c = input("Enter the value of c ")):
dis = b * b - 4 * a * c
sqrt_val = math.sqrt(abs(dis))
if dis > 0:
print((-b + sqrt_val)/(2 * a))
print((-b - sqrt_val)/(2 * a))
elif dis == 0:
print(-b / (2 * a))
else:
print(- b / (2 * a), " + i", sqrt_val)
print(- b / (2 * a), " - i", sqrt_val)
为什么程序要求输入值(应该如此),但不给出任何输出?
1条答案
按热度按时间2wnc66cl1#
当你把
input()
在函数定义中,这些函数甚至不需要调用函数就可以运行;这些都会被执行,因为默认值是在定义函数时计算的,而不是在调用函数时计算的。我看不到您在哪里调用该函数,因此我假设您从未真正调用过它,从而导致在仍然得到输入提示的情况下没有打印输出。要解决这些问题,您需要调用该函数,并将输入放入其中。
此外,您的
a
b
及c
值被读取为字符串,但从未转换为数字,如果不首先转换它们,将导致错误,因此我将转换为float
为了让它工作。