繁体   English   中英

在if语句中使用布尔运算符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM