【发布时间】:2017-05-07 16:17:08
【问题描述】:
我希望它说欢迎,询问用户输入 (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是一个局部变量。分配给它不会改变全局变量。 -
另外,
==是一个比较,而不是一个赋值
标签: python while-loop