我想在python中将int与字符串(带数值)进行比较时,没有必要显式转换字符串。但是下面的代码教给我一个教训:
size = raw_input("a numeric value:")
a_str = 'abcdefghijklmn'
if len(a_str) > size:
print("The string is longer.")
elif len(a_str) < size:
print("The string is shorter.")
else:
print("they are equal in length.")
无论我输入什么值,它总是选择len(a_str)&lt;大小,直到我使用int(size)转换大小。
答案 0 :(得分:3)
python manual明确提到了
CPython实现细节:除了以外的不同类型的对象 数字按其类型名称排序;相同类型的对象 不支持正确比较的,按其地址排序。
不同类型的对象,不同的数字类型和 不同的字符串类型,从不比较平等;这样的对象是有序的 一致但任意(以便排序异构数组 产生一致的结果)。此外,某些类型(例如, 文件对象)只支持任何比较的简并比较概念 这种类型的两个对象是不相等的。同样,这些对象是有序的 任意但始终如一。 &lt;,&lt; =,&gt;和&gt; =运算符将提升 任何操作数是复数时的TypeError异常。
相关问题: