Задать вопрос
@SoySois

Как вывести полностью строки через \n в python?

У меня есть код, который выводит несколько строк через enter ( \n ). Как мне сделать, чтобы я мог выбирать отдельные строки из всех (у меня всё записано в одной переменной) и выводить их?

x += (f"Предмет: {subject}")
                    x += '\n'
                    x += (f"Сроки проведения: {dates}")
                    x += '\n'
                    x += (f"Время начала: {times}")
                    x += '\n'
                    x += (f"Классы участия: {grades}")
                    x += '\n'
                    x += (f"Итоги проверки: {itog}")
                    x += '\n'
                    x += (f"Задания и решения: {results_publication}")
                    x += '\n'
                    x += ("-" * 20)
                    x += '\n'


Нужно чтобы выводило только 6 определённых строк из переменной:
Вся переменная:
Предмет: Право
Сроки проведения: 3 декабря 2024 года
Время начала: 16:00
Классы участия: 9–11
Итоги проверки: официальная публикация ожидается 9.12
Задания и решения: задания и решения
--------------------
Предмет: Математика
Сроки проведения: 4 декабря 2024 года
Время начала: 16:00
Классы участия: 7–8
Итоги проверки: официальная публикация ожидается 12.12
Задания и решения: задания

Что нужно вывести:
Предмет: Математика
Сроки проведения: 4 декабря 2024 года
Время начала: 16:00
Классы участия: 7–8
Итоги проверки: официальная публикация ожидается 12.12
Задания и решения: задания

Надеюсь понятно сформулировал вопрос.
  • Вопрос задан
  • 183 просмотра
Подписаться 2 Простой 2 комментария
Решения вопроса 1
Lord_of_Rings
@Lord_of_Rings
Северный странник. Злой, но добрый
Ну если через это г..., то
x_split = x.split('\n')
print(x_split[0]) # где 0 - номер нужной вам строки (считая  с 0)
Если вы ищете по предмету, то можно и такое сварганить
def extract_specific_lines(text, subject_keyword):
    # Разбиваем строку на отдельные строки
    lines = text.split('\n')

    # Начинаем с пустого списка для хранения нужных строк
    selected_lines = []

    # Флаг для отслеживания, когда начинается нужный блок строк
    start_collecting = False

    # Перебираем все строки
    for line in lines:
        if line.startswith(f"Предмет: {subject_keyword}"):
            start_collecting = True
        if start_collecting:
            selected_lines.append(line)
            # Останавливаем сбор после последней нужной строки
            if line.startswith("Задания и решения:"):
                break

    # Объединяем выбранные строки в одну строку
    result = '\n'.join(selected_lines)

    return result

# Ваша исходная строка
x = """Предмет: Право
Сроки проведения: 3 декабря 2024 года
Время начала: 16:00
Классы участия: 9–11
Итоги проверки: официальная публикация ожидается 9.12
Задания и решения: задания и решения
--------------------
Предмет: Математика
Сроки проведения: 4 декабря 2024 года
Время начала: 16:00
Классы участия: 7–8
Итоги проверки: официальная публикация ожидается 12.12
Задания и решения: задания и решения"""

# Используем функцию для извлечения нужных строк
subject_keyword = "Математика"
result = extract_specific_lines(x, subject_keyword)

# Выводим результат
print(result)


Но вообще все это бред. По-хорошему надо так:
blocks = []
block = {
        "Предмет": subject,
        "Сроки проведения": dates,
        "Время начала": times,
        "Классы участия": grades,
        "Итоги проверки": itog,
        "Задания и решения": results_publication
}
blocks.append(block)

А потом делайте, что хотите. Например вывести всё на экран можно так
for block in blocks:
    for key, value in block.items():
        print(f"{key}: {value}")
    print("-" * 20)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
11 дек. 2024, в 22:15
10000 руб./за проект
11 дек. 2024, в 22:10
3000 руб./за проект
11 дек. 2024, в 21:35
13000 руб./за проект