CMD Prompt & Sublime Buid 中的不同 OP

Different OP in CMD Prompt & Sublime Buid

我已经在下面的代码中编写了断言代码:

def KelvinToFahrenheit(Temperature):
    assert (Temperature >= 0),"Colder than absolute zero!"
    return ((Temperature-273)*1.8)+32

print (KelvinToFahrenheit(273))
print (int(KelvinToFahrenheit(505.78)))
print (KelvinToFahrenheit(-5))

当我 运行(windows 10, python 3.6.1) 以上代码使用命令提示符时:断言工作正常。

O/P :
32.0
451

Traceback (most recent call last):
File "assert.py", line 8, in <module>
print (KelvinToFahrenheit(-5))
File "assert.py", line 2, in KelvinToFahrenheit
assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!

但是当我 运行 使用 sublime O/P -

32.0 
451
-468.40000000000003
[Finished in 0.3s] 

有人指导我

我试过了,但我得到了与预期相同的断言错误。 您可能 运行 是不同的版本。 python shell 和 python idle 版本不同。

您使用的似乎是 PyCharm 而不是 Sublime。我从不使用 PyCharm 但你的问题应该是你是 运行 "PycharmProjects/ppp/loop.py" 项目,其配置打开 PYTHONOPTIMIZE 环境变量。此模式将任何断言语句转换为空操作并且不会被评估。

您应该检查 IDE 中的 run/debug 配置。