if 语句 - 无法预测 Python 中 if else 条件的结果



以下代码将产生什么作为输出?

temp = '32'
if temp > 85:
   print "Hot"
elif temp > 62:
   print "Comfortable" 
else:
   print "Cold"

您正在比较字符串和整数。Python 是一种强类型语言:出于很好的理由,它不会自动为您转换类型。

>>> 1e320 > '0'
False

如果您知道这些值将属于同一类型,则应强制进行类型转换。

>>> 1e320 > int('0')
True

但是,如果您要在那里定义值,请以使比较有效的方式定义它。

temp = 32 # not '32'
if temp > 85:
    print "Hot"
elif temp > 62:
    print "Comfortable" 
else:
    print "Cold"
这是

完全可以预测的。你只需要意识到正在比较什么。 temp是一个字符串,Python 不会自行将其解析为 int。从逻辑上讲,第一个字符与整数进行比较(否则我相信它总是和其他数字之间的比较,同时这也允许按字母顺序排序)。了解您使用的是 ASCII 还是 Unicode(ASCII 应该是 Python 中的默认值),并在相应的表中查找第一个字符。现在,您可以预测输出。为了安全起见,查看字符串与 Python 中的其他类型的比较情况。

最新更新