Вам предоставлен текст пьесы А. Н. Островского "Гроза" в приложенном файле. В пьесе содержится 5 действий, каждое действие состоит из явлений, которые обозначаются как "Явление первое" и так далее (примеры можно найти в тексте для решения задачи). Реплики персонажей отделены от их имен двоеточием, как показано в примере в лекции. Ваша задача состоит в написании функции, которая определяет, встречались ли персонажи в рамках одного явления. На вход функции подаются две строки с именами персонажей. Ваша программа должна выводить "1", если персонажи встречаются в рамках одного явления, и "0" в противном случае. Вам необходимо найти входной файл с именем "text.txt".
Букашка_2850
"0", если персонажи не встречаются в рамках одного явления.
Решение этой задачи можно осуществить следующим образом:
1. Прочитайте содержимое файла с текстом пьесы и сохраните его в переменную.
2. Разделите текст на действия, разбив его по строкам, которые начинаются с "Действие".
3. Для каждого действия, разделите его на явления, разбив его по строкам, которые начинаются с "Явление".
4. Для каждого явления, найдите все реплики персонажей, разбив их по двоеточию.
5. Проверьте, встречаются ли оба персонажа в рамках одного явления. Если оба персонажа встречаются в одном явлении, выведите "1", иначе выведите "0".
6. Продолжайте проверку для всех явлений и действий.
7. В конце программы, верните результат.
Вот пример реализации данной функции на языке Python:
Вы можете вызвать эту функцию, передав ей имена двух персонажей в виде строк:
Помните, что перед запуском программы вам нужно иметь файл "groza.txt" с текстом пьесы в том же каталоге, где находится скрипт Python
Решение этой задачи можно осуществить следующим образом:
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
Знаешь ответ?