首页 > 解决方案 > 为什么我的 if 函数没有返回正确的值?

问题描述

我对 Python 编程很陌生,所以如果这似乎是一个愚蠢的问题,请原谅我。这是我给定结果的代码:

代码:

def Stopping_Voltage(Frequency, Phi):
    x = (4.14E-15) * Frequency ##The value of (h/e) multiplied by frequency
    y = Phi / (1.602E-19) ##The value of Phi/e
    Energy = x * (1.602E-19)
    print(Energy)
    print(Phi)
    print(x)
    print(y)
    String = 'No electron is emitted'
    if Energy > Phi:
        Voltage = x - y
        return(Voltage)
    else:
        return(String)

Stopping_Voltage(10, (6.63228E-33))

结果:

6.632280000000001e-33
6.63228e-33
4.1400000000000005e-14
4.14e-14

6.310887241768095e-30

我们被要求做的是,如果能量小于或等于 phi,则返回字符串,但是当使用给定变量测试它时,它应该返回字符串,但它仍然给我一个定量的结果。我最初尝试使用“else”而不是“elif”,但它仍然给了我同样的东西(如果这很重要的话)。当我打印能量和 Phi 的值时,能量值在小数点后有很多零(在所有零之后都有 1)。我该如何解决这个问题才能给我字符串?

标签: python-3.x

解决方案


你的代码很好!它确实返回字符串,如果Energy是 <= Phi。只是Energy在这个特定的例子中你真的比你的大Phi:) 这是一个数字的科学记数法,所以e意味着像 2e-5 这样的 10^exponent 等于 2*10^-5。您可以通过在 if-else 块之前添加print(Energy > Phi)将打印您True或例如打印您的内容来检查它。False


推荐阅读