Вам не нужно проходить строки подсчета файлов вручную. Вы можете просто использовать .read()
:
count = lst.count(who)
Другая проблема заключается в том, что вы вызываете teams.close()
и print(count)
вне функции.
Это означает, что они попытаются выполниться до того, как вы вызовете main, и вы пытаетесь закрыть «команды», которые еще не были открыты или определены, поэтому ваш код не знает, что делать. То же самое с печатью count - count не был определен вне функции, которая не вызывалась.
Если вы хотите использовать их вне функции, в конце функции вам нужно return count
Кроме того, в вашем цикле вы выполняете оператор count += 1
, что означает count = count + 1
, но вы не сказали ему, какой счет будет считаться в первый раз, поэтому он не знает, что он должен добавить к единице. Исправьте это, определив count = 0
перед циклом внутри функции.
И причина, по которой у вас есть бесконечный цикл, заключается в том, что ваше условие никогда не будет выполнено. Ваш код никогда не должен выполняться в течение часа, почти никогда. Не оставляйте его включенным только на час.
Вот какой-то альтернативный код. Однако убедитесь, что вы понимаете проблемы.
def main():
file = open('WorldSeriesWinners.txt', 'r').read()
team = input("Enter team name: ")
count = file.count(team)
print(count)
main()
Вы можете буквально поместить всю эту программу в одну строку:
print(open('WorldSeriesWinners.txt', 'r').read().count(input("Enter team name: ")))
person
Charles Clayton
schedule
22.04.2014