python-3.x - 为什么我的 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)。我该如何解决这个问题才能给我字符串?
解决方案
你的代码很好!它确实返回字符串,如果Energy
是 <= Phi
。只是Energy
在这个特定的例子中你真的比你的大Phi
:) 这是一个数字的科学记数法,所以e
意味着像 2e-5 这样的 10^exponent 等于 2*10^-5。您可以通过在 if-else 块之前添加print(Energy > Phi)
将打印您True
或例如打印您的内容来检查它。False
推荐阅读
- sql - 使用 UNPIVOT 将代码从 sql 重写为 redshift
- c# - 遍历单个实体到 HTML 无序列表
- google-cloud-endpoints-v2 - 端点框架客户端库版本
- regex - matching string using regular expression
- python - 如何遍历 numpy 3d 数组
- php - Yii2 模型用于组合多个属性的唯一规则
- javascript - 将 php 密钥转换为 javascript 以进行日志记录
- mysql - 如何查找与特定字符串匹配的条目
- api - 如何找到我网站的所有 API?
- r - 将数据框中的许多变量从数字转换为因子