我正在做一个排名类型的事情,发生的事情是我将分数与当前分数进行比较,如果分数低于当前分数,则玩家获得了高分,但是在此处使用此代码时
print "Score = " + str(score) + ", Compared to = " + str(array[x])
if score < array[x]:
#Do stuff here
但是即使 score 为 4 且 array[x] 为 2 if 语句仍然完成?
我做错了什么吗?
我的理解是,如果得分为 4 且 array[x] 为 2,则 4 大于 2,这意味着返回 False?
完整代码
def getRank(array, score):
rank = 0
rankSet = False
for x in range(0, len(array)):
print "Score = " + str(score) + ", Compared to = " + str(array[x])
if score < array[x]:
if not rankSet:
rank = x
print "Set rank to: " + str(rank)
rankSet = True
elif score == array[x] or score > array[x]:
rank += 1
print "Rank higher than " + str(x)
print "Rank = " + str(rank)
return rank
如果 score = 4 并且数组由 [1, 2] 组成,它会打印此内容
Score = 4, Compared to = 1
Set rank to: 0
Score = 4, Compared to = 2
Rank = 0
最佳答案
检查以确保 score 和 array[x] 都是数值类型。您可能会将一个整数与一个字符串进行比较……这在 Python 2.x 中是令人心碎的可能。
>>> 2 < "2"
True
>>> 2 > "2"
False
>>> 2 == "2"
False
编辑
关于python - 大于小于,python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11767867/