Вам предоставлен текст пьесы А. Н. Островского Гроза в приложенном файле. В пьесе содержится 5 действий, каждое

Вам предоставлен текст пьесы А. Н. Островского "Гроза" в приложенном файле. В пьесе содержится 5 действий, каждое действие состоит из явлений, которые обозначаются как "Явление первое" и так далее (примеры можно найти в тексте для решения задачи). Реплики персонажей отделены от их имен двоеточием, как показано в примере в лекции. Ваша задача состоит в написании функции, которая определяет, встречались ли персонажи в рамках одного явления. На вход функции подаются две строки с именами персонажей. Ваша программа должна выводить "1", если персонажи встречаются в рамках одного явления, и "0" в противном случае. Вам необходимо найти входной файл с именем "text.txt".
Букашка_2850

Букашка_2850

"0", если персонажи не встречаются в рамках одного явления.

Решение этой задачи можно осуществить следующим образом:

1. Прочитайте содержимое файла с текстом пьесы и сохраните его в переменную.
2. Разделите текст на действия, разбив его по строкам, которые начинаются с "Действие".
3. Для каждого действия, разделите его на явления, разбив его по строкам, которые начинаются с "Явление".
4. Для каждого явления, найдите все реплики персонажей, разбив их по двоеточию.
5. Проверьте, встречаются ли оба персонажа в рамках одного явления. Если оба персонажа встречаются в одном явлении, выведите "1", иначе выведите "0".
6. Продолжайте проверку для всех явлений и действий.
7. В конце программы, верните результат.

Вот пример реализации данной функции на языке Python:

python
def check_characters(character1, character2):
# Прочитать содержимое файла
with open("groza.txt", "r") as file:
play_text = file.read()

# Разделить текст на действия
actions = play_text.split("Действие")

# Проход по каждому действию
for action in actions:
# Разделить действие на явления
scenes = action.split("Явление")

# Проход по каждому явлению
for scene in scenes:
# Разделить явление на реплики персонажей
lines = scene.split("\n")
character1_present = False
character2_present = False

# Проверка наличия персонажей в явлении
for line in lines:
if line.startswith(character1 + ":"):
character1_present = True
if line.startswith(character2 + ":"):
character2_present = True

# Если оба персонажа присутствуют, вернуть "1"
if character1_present and character2_present:
return "1"

# Если персонажи не встречаются в рамках одного явления, вернуть "0"
return "0"


Вы можете вызвать эту функцию, передав ей имена двух персонажей в виде строк:

python
result = check_characters("Игорь", "Катерина")
print(result)


Помните, что перед запуском программы вам нужно иметь файл "groza.txt" с текстом пьесы в том же каталоге, где находится скрипт Python
Знаешь ответ?
Задать вопрос
Привет!
hello