4

所以,我对这段代码有点麻烦。

if s.get("home") < s.get("away"):
        scoringplays = scoringplays + s.get("away") + "-" + s.get("home") + " " + game.get("away_team_name")
    elif s.get("home") > s.get("away"):
        scoringplays = scoringplays + s.get("home") + "-" + s.get("away") + " " + game.get("home_team_name")
    else:
        scoringplays = scoringplays + s.get("home") + "-" + s.get("away") + " Tied"

它从 MLB 中提取棒球比赛的比分并将其发布到 reddit,如下所示:

4-3 获胜队名

但是,我注意到如果其中一个分数是两位数,代码似乎只读取第一个数字,因此 10-2 的分数会显示如下:

2-10 失去队名

我搜索了一下,也许我使用了错误的搜索词,但我似乎无法在这里找到答案。任何帮助将不胜感激。

4

1 回答 1

4

看起来你正在比较字符串:

>>> "10" < "2"
True

比较他们的整数版本:

if int(s.get("home")) < int(s.get("away"))

如果字典中缺少键,则默认dict.get返回None。您也可以传递自己的默认值。

home_score = int(s.get("home", 0))  # or choose some other default value
away_score = int(s.get("away", 0))

if home_score < away_score:
     #do something

演示:

>>> int("10") < int("2")
False
于 2013-06-30T15:12:51.900 回答