Это назначение:.Logic Ошибка в программе World Series
«В модуле файл WorldSeriesWinners.txt Этот файл содержит хронологический список Мировой серии команд-победителей с 1903 по 2009 . (Первая строка в файле имя команды, выиграл в 1903 году, а последняя строка название команды, которая выиграла в 2009).
Напишите программу, которая позволяет пользователю ввести имя команды, а затем отображает количество раз, когда команда выиграл World Series в период времени с 1903 по 2009
Программа требуется использовать список для чтения в данных и в цикле для подсчета раз выиграл.»
Программа должна выглядеть так:
Enter the name of a team: Chicago Cubs
The Chicago Cubs won the world series 2 times between 1903 and 2009.
=============================== RESTART ============================
Enter the name of a team: New York Yankees
The New York Yankees won the world series 26 times between 1903 and 2009.
=============================== RESTART ============================
Enter the name of a team: Lakeland Tigers
The Lakeland Tigers never won the world series.
=============================== RESTART ============================
Я думаю, что я довольно близко к решению проблемы, за исключением одной логической ошибки.
Это мой код:
# Write a program that lets the user enter the name of a team
# and then displays the number of times that team had won the World Series
# in the time period from 1903 to 2009
# Open the file
def main():
infile = open('WorldSeriesWinners.txt', 'r') # Open the file
winner = infile.readlines() # Read the contents of the file into the list
infile.close() # Always remember to close the file
team = input('Enter the name of a team: ') # Enter name of a baseball team
counter = 0 # If said team won a game, count how many times
for team in winner:
result = counter + 1
if result == 1: # Finally, print the results
print("The", team, "won the world series", result, "time between 1903 and 2009.")
elif result > 1:
print("The", team, "won the world series", result, "times between 1903 and 2009.")
else:
print("The", team, "never won the world series.")
main()
И это то, что происходит, когда я нажимаю F5:
>>>
Enter the name of a team: Chicago Cubs
The Philadelphia Phillies won the world series 1 time between 1903 and 2009.
>>>
Две вещи: Я не только не печатайте в Филадельфия Филлис, но граф неверно, потому что Филлис дважды выигрывала World Series (1980 и 2008), и поэтому название команды появляется дважды в текстовом файле (и да, я проверил, чтобы убедиться).
Благодарим вас за консультацию. На самом деле я плохо себя чувствую. Я все еще новичок в программировании, и, хотя я чувствую, что у меня довольно хорошее понимание терминов и понятий, воплощение его в жизнь иногда может полностью запугать мой разум. Я посмотрел предыдущие задания и смог приблизиться к этой конкретной проблеме, но помню, как форматировать эти циклы подсчета, по какой-то причине я полностью потерялся, хотя я * сделал это раньше. –
Есть что-то, называемое [сухой пробег] (http://theteacher.info/websites/ocr_alevel/WebPages/F452_ProgTechn/DryRuns/DryRuns.html), практикуйте это усердно. И научитесь использовать отладчик и проверяйте переменные при запуске по очереди. – Kartik
Спасибо, @ Картик. Кстати, я набрал контур счетчика, но он по-прежнему считается неточно. Но я отвечу на ваш совет и попытаюсь решить это самостоятельно. –