Как мне отобразить результаты для специально выбранных команд?

#python

Вопрос:

Я создаю программу для проверки результатов сегодняшних игр в НХЛ. Я проверяю результаты каждой игры, сравниваю их и печатаю, кто выигрывает и на сколько. Может ли кто-нибудь сказать мне, как мне сделать так, чтобы моя проверка отображалась только в том случае, если выбранная мной команда выигрывает или проигрывает.

 (Carolina Hurricanes: Winning   Toronto Maple Leafs: Winning  Carolina Hurricanes: Losing )   

В настоящее время мой код проверяет каждую игру за день, а не только те, которые я ищу.

 import requests from requests.exceptions import HTTPError  ids = [] iswinning = [] try:  response = requests.get(  'https://statsapi.web.nhl.com/api/v1/schedule?expand=schedule.teams,schedule.linescore')  response.raise_for_status()  jsonResponse = response.json()  games = jsonResponse["dates"][0]['games']  for i in games:  ids.append(i['gamePk'])   except HTTPError as http_err:  print(f'HTTP error occurred: {http_err}') except Exception as err:  print(f'Other error occurred: {err}')   def game_compare(n):  url = "https://statsapi.web.nhl.com/api/v1/game/"   str(n)   "/feed/live"  try:  response = requests.get(url)  response.raise_for_status()  jsonResponse = response.json()  home = jsonResponse["liveData"]['linescore']['teams']['home']['team']['name']  goals_home = jsonResponse["liveData"]['linescore']['teams']['home']['goals']  away = jsonResponse["liveData"]['linescore']['teams']['away']['team']['name']  goals_away = jsonResponse["liveData"]['linescore']['teams']['away']['goals']  except HTTPError as http_err:  print(f'HTTP error occurred: {http_err}')  except Exception as err:  print(f'Other error occurred: {err}')  if goals_home gt; goals_away:  print(home   " is winning by "   str((goals_home - goals_away)))  elif goals_home lt; goals_away:  print(away   " is winning by "   str((goals_away - goals_home)))  else:  print(home   " is tied with "   away)  for i in ids:  game_compare(i)  

Комментарии:

1. Затем создайте список любимых команд favorites = ["Carolina Hurricanes", "Toronto Maple Leafs"] , прежде чем печатать материалы: if home in favorites or away in favorites: ....

Ответ №1:

Просто создайте список (таким образом, при необходимости у вас может быть более 1 команды) нужных вам команд. Затем в вашей функции для сравнения проверьте, есть ли в вашем списке команда хозяев или команда гостей. Если это не так, вернитесь None , так как вам это не нужно для сравнения результатов. Поскольку в игре также есть статус (то есть, является ли она живой или финальной), вы также можете сделать ее более динамичной, сказав, что команда выиграла, а не сказала, что побеждает:

 import requests from requests.exceptions import HTTPError   teamChosen = ['Chicago Blackhawks']   ids = [] iswinning = [] try:  response = requests.get(  'https://statsapi.web.nhl.com/api/v1/schedule?expand=schedule.teams,schedule.linescore')  response.raise_for_status()  jsonResponse = response.json()  games = jsonResponse["dates"][0]['games']  for i in games:  ids.append(i['gamePk'])   except HTTPError as http_err:  print(f'HTTP error occurred: {http_err}') except Exception as err:  print(f'Other error occurred: {err}')   def game_compare(n):  status_resp = {'win':{'Live':'is winning','Final':'won'},  'tie':{'Live':'is tied','Final':'tied'}}  url = "https://statsapi.web.nhl.com/api/v1/game/"   str(n)   "/feed/live"  try:  response = requests.get(url)  response.raise_for_status()  jsonResponse = response.json()  home = jsonResponse["liveData"]['linescore']['teams']['home']['team']['name']  goals_home = jsonResponse["liveData"]['linescore']['teams']['home']['goals']  away = jsonResponse["liveData"]['linescore']['teams']['away']['team']['name']  goals_away = jsonResponse["liveData"]['linescore']['teams']['away']['goals']    status = jsonResponse['gameData']['status']['detailedState']  if status != 'Final':  status = 'Live'      if home not in teamChosen and away not in teamChosen:  return None    except HTTPError as http_err:  print(f'HTTP error occurred: {http_err}')  except Exception as err:  print(f'Other error occurred: {err}')  if goals_home gt; goals_away:  print(home   " %s by " %(status_resp['win'][status])   str((goals_home - goals_away)))  elif goals_home lt; goals_away:  print(away   " %s by " %(status_resp['win'][status])   str((goals_away - goals_home)))  else:  print(home   " %s with " %(status_resp['tie'][status])   away)  for i in ids:  game_compare(i)  

Выход:

 Chicago Blackhawks won by 1