比较Python中的字符串和数字

时间:2015-11-29 21:11:05

标签: python string numbers

如果将字符串与数字进行比较会发生什么?幕后发生了什么?为什么这不会给我一个错误,而是一直打印“meh”,无论b是否在a和c之内?

a = "900"
b = 1055
c = "2000"

if a <=b <= c:
    print "bingo"
else:
    print "meh"

2 个答案:

答案 0 :(得分:0)

我相信如果你将字符串与常规数字进行比较,它会获取字符串中字符的ASCII值,并通过该值进行比较。因此b不会小于c,因为“2000”中字符的ASCII值将显着低于整数值1055

此外,对于同一问题,可以找到更好的答案here

答案 1 :(得分:0)

实际上,a将大于c而不是b因为,python将使用第一个字符作为ascii中的值

pattern                  | locale   | tz   |  result
============================================
yyyy/MM/dd               | null     | null |  2015/11/29          
dd-M-yyyy hh:mm:ss       | null     | null |  29-11-2015 10:07:40
dd MMMM yyyy zzzz        | ENGLISH  | null |  29 November 2015 Central European Time
yyyy-MM-dd HH:mm:ss.SSS  | null     | UTC  |  2015-11-29 10:07:49 UTC