Победители Мировой серии. Среди исходного кода главы 9 вы найдете файл WorldSeriesWinners.txt. Он содержит хронологический список команд-победителей Мировой серии по бейсболу с 1903 по 2009 год. (Первая строка в файле является названием
команды, которая победила в 1903 году, последняя строка -названием команды, которая победила в 2009 году. Обратите внимание, что Мировая серия не проводилась в 1904 и 1994 годах. В файле имеются указывающие на это пометки.)
Напишите программу, которая читает этот файл и создает словарь, в котором ключи -это названия команд, а связанные с ними значения -количество побед команды в Мировой серии. Программа также должна создать словарь, в котором ключи -это годы а связанные с ними значения - названия команд, которые побеждали в том году.
Программа должна предложить пользователю ввести год в диапазоне между 1903 и 2009 годами и вывести название команды, которая выиграла Мировую серию в том году и количество побед команды в Мировой серии.
Решение задачи:
def main():
START = 1903
NO1904 = 1904
NO1994 = 1994
FINISH = 2009
with (open('WorldSeriesWinners.txt', 'r') as in_file):
winer_list = []
for i in in_file:
winer_list.append(i.rstrip('\n'))
unick_winer = set()
unick_winer.update(winer_list)
def get_count_list_winer(winer_list, unick_winer, command):
winer_count = {}
for i in unick_winer:
count_ = winer_list.count(i)
winer_count[i] = count_
count_comand = winer_count[command]
return count_comand
def get_dict_year_winer(winer_list, year):
year_winer = {}
for i in range(len(winer_list)):
if i >= NO1994 - START:
year_winer[i+START+2] = winer_list[i]
elif i >= NO1904 - START:
year_winer[i+START+ 1] = winer_list[i]
else:
year_winer[START] = winer_list[i]
return year_winer[year]
year = int(input('Введите год в диапазоне между 1903 и 2009 годами: '))
while year == 1904 or year == 1994:
print('В этот год игр не было')
year = int(input('Введите год в диапазоне между 1903 и 2009 годами: '))
command = get_dict_year_winer(winer_list, year)
print(command)
count_co = get_count_list_winer(winer_list, unick_winer, command)
print(f'В {year} году победила команда {command} эта команда побеждала {count_co} раз ')
main()