[英]Using boolean operators in an if statement
我是编码的初学者,我正在尝试使用python创建二次方程式计算器。
while True:
print("""
Welcome to DJIGURDA Supreme Quadratic Calculator
Please enter three values in the form of /'ax^2 + bx +c/'. """)
a = input("a (first constant)")
b = input("b (second constant)")
c = input("c (third constant)")
if not a.isalpha and not b.isalpha and not c.isalpha:
d = (float(b)**2) - (4 * float(a) * float(c))
print(d)
if d >= 0:
x_1 = (float(-b) + (d**0.5)) / (2*float(a))
x_2 = (float(-b) - (d**0.5)) / (2*float(a))
print("The first variable is equal to %s./n The second variable is equal to %s")[str(x_1), str(x_2)]
else:
print("No real roots.")
else:
print("Please enter numerical values.")
该代码不断返回“请输入数值”。 为什么代码没有使它超出第一个“ if”语句?
您没有调用这些方法:
c.isalpha()
# ^^
请注意,Python中的方法或函数具有真实值:
>>> bool(''.isalpha)
True
因此not a.isalpha
(及其他)不会总是评估为False
并且条件永远不会过去
您必须在a.isalpha周围加上方括号-像这样的a.isalpha()会调用该方法,而在此之前没有。 您也必须同时针对b和c
更新
抱歉,我刚刚意识到有人已经回答了这个问题,就像我在我面前一样,请不要接受我的回答并接受他们的回答!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.