2014-02-24 190 views
-2

我无法猜测为什么我在Python中运行时没有得到任何打印......这就像它没有正确考虑负数。python比较正数和负数

varA = -4 
varB = 8 
if type(varA)==str: 
    print "string involved" 
elif type(varB)==str: 
    print "string involved" 
elif varA>varB: 
    print "bigger" 
elif varA==varB: 
    print "equal" 
elif varA>varB: 
    print "smaller" 
+0

使用isinstance(varA,str)而不是type(varA)== str –

+0

但即使我使用isinstance我仍然遇到同样的问题......它一切正常,直到我开始播放负数而不是制作对我很有意义 – user3289645

+0

我知道,这是一个评论,而不是一个答案 –

回答

1

的问题是最后elifelif varA>varB:。它的条件与第三条相同。你应该把它固定到:

elif varA<varB: 

顺便说一句,在评论中提到,要检查一个类型的实例是更好地使用isinstance方法比type(obj)==str

+0

谢谢:)这是愚蠢的错误 – user3289645

+0

@ user3289645没问题,有时会发生; –

3

将最后的elif varA>varB:更改为elif varA<varB:。只是一个错字。

要采用这一问题时是安全的,你可以在最后用else代替elif

elif varA>varB: 
    print "bigger" 
elif varA==varB: 
    print "equal" 
else: #don't use elif 
    print "smaller" 
+1

谢谢,错字愚蠢的错误 – user3289645

+0

@ user3289645我建议'其他'而不是'elif',看我的编辑;) – zhangxaochen

0

由于没有任何条件是真实的。

我猜你的意思是写:

varA = -4 
varB = 8 
if type(varA)==str: 
    print "string involved" 
elif type(varB)==str: 
    print "string involved" 
elif varA>varB: 
    print "bigger" 
elif varA==varB: 
    print "equal" 
elif varA<varB: # And not "varA>varB" as above 
    print "smaller" 

Give --> smaller 

希望这回答您的问题!