我希望它说欢迎,要求用户输入(a,b,c),验证用户输入,如果验证返回输入是合理的,那么在a,b,c上执行二次公式。我怀疑问题出在while循环中。该程序只是欢迎,请求输入然后再说欢迎等。为什么下面的代码不遵循指定的顺序?
from math import sqrt
def quadratic_formula(a,b,c):
a=float(a) #The quadratic formula
b=float(b)
c=float(c)
x1_numerator = -1*b + sqrt((b**2)-4*(a*c))
x2_numerator = -1*b - sqrt((b**2)-4*(a*c))
denominator = 2*a
x1_solution = x1_numerator/denominator
x2_solution = x2_numerator/denominator
print("x= "+str(x1_solution)+" , x= "+str(x2_solution))
def number_check(a,b,c,check): #carries out a check
a=float(a)
b=float(b)
c=float(c)
if (b**2)-4*a*c < 0:
print("The values you have entered result in a complex solution. Please check your input.")
check == False
else:
check == True
check = False
while check == False:
print("Welcome to the Quadratic Equation Calculator!")
a = input("Please enter the x^2 coefficient: ")
b = input("Please enter the x coefficient: ")
c = input("Please enter the constant: ")
number_check(a,b,c,check)
else:
quadratic_formula(a,b,c)
里面的'number_check'功能,'check'是一个局部变量。分配给它不会改变全局变量。 – Barmar
此外,'=='是一个比较,而不是任务 –