python - 大于小于,python

标签 python if-statement

我正在做一个排名类型的事情,发生的事情是我将分数与当前分数进行比较,如果分数低于当前分数,则玩家获得了高分,但是在此处使用此代码时

        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

编辑

进一步说明:How does Python compare string and int?

关于python - 大于小于,python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11767867/

相关文章:

python - Betweenness_centrality 带来意想不到的结果

python - 我在 .openshift/cron/minutely 目录中托管在 OpenShift 上的 Python 脚本无法运行。怎么了?

python - oauth2client 用于 Blogger 从 Heroku 服务器中的电报机器人发帖

python - django none 类型对象没有属性状态

java - if 语句中的 i++ 与 i=i+1 有什么区别?

python - 如何使用条件语句创建包含计算值的新列

windows - 在 Windows 批处理文件脚本中使用 if 语句

python - 为 Dataframe 的特定列添加前缀

mysql - 在触发器mysql中添加if else语句时出错

ios - 在 Swift 中针对 Nil 值漂亮地测试多个变量