我正在做一个排名类型的事情,发生的事情是我将分数与当前分数进行比较,如果分数低于当前分数,那么玩家就得到了一个高分,但是在这里使用此代码时
print "Score = " + str(score) + ", Compared to = " + str(array[x])
if score < array[x]:
#Do stuff here
但是,即使得分是4,数组[x]是2,if语句仍然完成?
我做错什么了吗?
我的理解是,如果得分4,数组[x]是2,那么4大于2,这意味着它返回错误?
这是完整的密码
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]都是数值类型。您可能正在将整数与字符串进行比较…这在Python2.x中是令人心碎的
编辑
进一步解释:How does Python compare string and int?
相关问题 更多 >
编程相关推荐