为什么我的if函数不能返回正确的值?

时间:2019-03-06 23:52:25

标签: python-3.x

我是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”,但是它仍然给我同样的东西(如果那很重要)。当我打印Energy和Phi的值时,能量值在小数点后有很多零(在所有零之后有1)。如何解决这个问题,以给我字符串?

1 个答案:

答案 0 :(得分:1)

您的代码很好!如果Energy是<= Phi,它将返回字符串。只是在这个特定示例中,您的Energy确实比您的Phi更大:)这是一个数字的scientific notation,因此e表示10 ^指数,如2e- 5等于2 * 10 ^ -5。您可以通过添加print(Energy > Phi)进行检查,以打印出TrueFalse,例如在if-else块之前。