Практика 2

Часть 1

Напишите программу на Python, реализующую игру «Спички».

В игре «Спички» участвует два игрока и N спичек. Игроки по очереди берут от одной до M спичек, где M = 3. Тот игрок, который возьмёт последнюю спичку, считается проигравшим.

Программа будет играть за первого игрока, а пользователь — за второго. Программа должна спросить у пользователя количество спичек N и сыграть за первого игрока, спрашивая у пользователя его ходы.

Пример работы программы:

C:\>Python33\python.exe matches.py
Введите количество спичек (N): 10
Ход № 1. Компьютер берёт 3 спички. Осталось 7 спичек.
Введите сколько спичек возьмёте вы: 2
Ход № 2. Вы взяли 2 спички. Осталось 5 спичек.
Ход № 3. Компьютер берёт 1 спичку. Осталось 4 спички.
Введите сколько спичек возьмёте вы: 1
Ход № 4. Вы взяли 1 спичку. Осталось 3 спичек.
Ход № 5. Компьютер берёт 2 спички. Осталась 1 спичка.
Введите сколько спичек возьмёте вы: 1
Ход № 6. Вы взяли 1 спичку. Осталось 0 спичек.
Компьютер выйграл!

Необходимо обрабатывать случаи, когда пользователь вводит некорректные значения (например, текст вместо числа, или пользователь пытается взять больше чем можно спичек) и переспрашивать пользователя.

При прерывании пользователем программы (с помощью Ctrl+C), необходимо вывести сообщение о выходе и выйти.

Дополнительные задания:

  1. Выводите информацию о количестве спичек в правильном склонении: «1 спичка», «2, 3, 42 спички», «5, 14 спичек».
  2. Обобщите игру для произвольного M (M ≥ 2).

Часть 2

Напишите программу, которая будет подсчитывать сколько раз подстрока (слово) встречается в файле.

Программа должна спросить пользователя имя файла F, с котором нужно работать. Далее, программа спрашивает строку для поиска S (слово), и выводит сколько раз строка S встречается в файле F.

Спрашивать строку для поиска необходимо в цикле, пока введённая строка не окажется пустой, или не будет запрошено завершение программы (нажатие Ctrl+C).

Например:

C:\>Python33\python.exe stat.py
Введите имя файла: crime_and_punishment.txt
Введите строку для поиска: она
Строка 'она' встречается 803 раз.
Введите строку для поиска: он
Строка 'он' встречается 5499 раз.
Введите строку для поиска: ·она·
Строка ' она ' встречается 568 раз.
Введите строку для поиска: ·он·
Строка ' он ' встречается 1817 раз.

Программа должна обрабатывать случай, если файл не удаётся открыть или прочитать, выводить сообщение об ошибке и выходить.

Дополнительные задания:

  1. Выводите информацию о количестве в правильном склонении: «1 раз», «2, 3, 42 раза», «5, 14 раз».

  2. Реализуйте работу в неинтерактивном режиме через аргументы командной строки, передаваемые программе:

    C:\>Python33\python.exe stat.py crime_and_punishment.txt она он
    Введите строку для поиска: она
    Строка 'она' встречается 803 раз.
    Введите строку для поиска: он
    C:\>
    

    Выводите справку о работе в неинтерактивном режиме, если аргументы не переданы:

    C:\>Python33\python.exe stat.py
    Usage:
        stat.py FILE STR1 [STR2 ...]
    C:\>
    
  3. Напишите программу для подсчета самых часто встречаемых слов в файле.