我是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)。如何解决这个问题,以给我字符串?
答案 0 :(得分:1)
您的代码很好!如果Energy
是<= Phi
,它将返回字符串。只是在这个特定示例中,您的Energy
确实比您的Phi
更大:)这是一个数字的scientific notation,因此e
表示10 ^指数,如2e- 5等于2 * 10 ^ -5。您可以通过添加print(Energy > Phi)
进行检查,以打印出True
或False
,例如在if-else块之前。