如果将字符串与数字进行比较会发生什么?幕后发生了什么?为什么这不会给我一个错误,而是一直打印“meh”,无论b是否在a和c之内?
a = "900"
b = 1055
c = "2000"
if a <=b <= c:
print "bingo"
else:
print "meh"
答案 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