我无法猜到为什么我在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 :(得分: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 :(得分:1)
问题是最后一次elif
:elif varA>varB:
。它与第3个条件相同。您应该将其修复为:
elif varA<varB:
顺便说一下,如评论中所述,要检查某种类型的实例是否比使用isinstance
方法更好地使用type(obj)==str
方法。
答案 2 :(得分: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
希望这能解决您的疑虑!