2013-06-30 8 views
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 및 게시물을에서 야구 경기의 점수를 끌어 :

4-3

그러나 팀 이름을 승리, 내가 발견 한 점수 중 하나가 두 자리에있는 코드는 첫 번째 숫자를 읽는 것, 그래서 10-2의 점수는과 같이 표시합니다 :

2-10 나는 주위를 검색 한

팀 이름을 잃고 비트, 아마도 잘못된 검색어를 사용하고 있지만 여기에서 답을 찾을 수없는 것 같습니다. 어떤 도움이라도 대단히 감사하겠습니다. 당신이 문자열을 비교하는 것 같은

+0

죄송합니다. 파이썬이야. 정말 감사합니다. – user2536657

답변

4

가 보이는 : 키를 누른 다음 DICT에서 dict.get 반환 기본적으로 None 누락 된 경우

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

:

>>> "10" < "2" 
True 

가 정수 버전을 비교합니다. 자신의 기본값을 전달할 수도 있습니다.

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 
+0

다음과 같은 오류가 발생합니다. TypeError : int() 인수는 'NoneType'이 아닌 문자열 또는 숫자 여야합니다. – user2536657

+0

@ user2536657 이것은 's.get ("home")'또는's .get ("away")'는'None'을 반환합니다. 기본값 인's.get ("home", 0)'을 사용할 수도 있습니다. "home"키가 발견되지 않으면 0이 반환됩니다. –

+0

감사합니다. 그 트릭을 한 것으로 보인다. – user2536657