如何在python中比较字符串和整数?

时间:2013-07-15 19:00:39

标签: python comparison

我有这个简单的python程序。我运行它并打印yes,实际上我希望它不会打印任何内容,因为14不大于14

我看到了related这个问题,但它并没有太大帮助。

#! /usr/bin/python

import sys

hours = "14"

if (hours > 14):
        print "yes"

我做错了什么?

1 个答案:

答案 0 :(得分:25)

将字符串转换为int的整数:

hours = int("14")

if (hours > 14):
        print "yes"

在CPython2中,当比较两个不同类型的非数字对象时,通过比较类型的名称来执行比较。由于'int' < 'string'任何int都小于任何字符串

In [79]: "14" > 14
Out[79]: True

In [80]: 14 > 14
Out[80]: False

这是一个经典的Python陷阱。在Python3中,这个疣已得到纠正 - 比较不同类型的非数字对象默认会引发TypeError。

作为explained in the docs

  

CPython实现细节:除了以外的不同类型的对象   数字按其类型名称排序;相同类型的对象   不支持正确比较的,按其地址排序。

相关问题