Как вложить условные 3 строки кавычек в другие 3 строки кавычек в python?

Я пытаюсь создать абзац строк, используя 3 строки кавычек, где некоторая группа строк в абзаце должна быть включена в условие if. Я использую скобки {} для этих условных строк, и, поскольку каждая из них должна быть на следующей строке, я должен использовать для них 3 строки кавычек. Итак, это вложенная строка из 3 кавычек с условием

Например, у меня есть

write_line_3nd4 = True
paragraph = f'''
this is line one
x = 12 #line two
{f'''
line 3,4 #this is line 3
x=34 #this is line 4''' if write_line_3nd4 else ''}
'''

Это дает мне ошибку как таковую:

File "<ipython-input-36-4bcb98c8ebe0>", line 6
line 3,4 #this is line 3
     ^
SyntaxError: invalid syntax

Как использовать условные многострочные строки внутри многострочных строк?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
148
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В будущем упростите свой вопрос до самой простой формы. Я не уверен, правильно ли я вас понял, но я предполагаю, что вы хотите напечатать только свою строку 3 и строку 4, если "write_line_3nd4 = True"

Гораздо проще поместить ваше условное выражение вне строки, а затем добавить результат внутрь. Я отредактировал ваш код, чтобы сделать это:

write_line_3nd4 = True

if write_line_3nd4 == True:
    line3 = '3,4'
    line4 = 'x=34'
else:
    line3 = ''
    line4 = ''

paragraph = f'''
this is line one
x = 12
''' + line3 + '''
''' + line4

Обновлено: Если вы настаиваете на том, чтобы помещать свои условные выражения в свою многострочную строку, вы можете сделать это, используя встроенные выражения. Вот как это будет выглядеть:

write_line_3nd4 = True
paragraph = f'''
this is line one
x = 12
''' + ('3,4' if write_line_3nd4 == True else '') + '''
''' + ('x=34' if write_line_3nd4 == True else '')

Извините за усложнение вопроса, я новичок в stackexchange. Я не могу использовать условие вне строки, потому что фактический абзац, который я пишу, огромен с большим количеством условных многострочных разделов в нем, поэтому было бы кошмаром отслеживать все условия вне основной строки из трех кавычек. . Есть ли лучший способ?

Harshad Surdi 29.05.2019 20:38

Понял, спасибо! Я использую немного модифицированную версию этого типа, ...+ (f''' x=3,4''' if write_line_3nd4 == True else ''")

Harshad Surdi 29.05.2019 21:47

Может быть, это поможет.

x = "one"
if x == "one":
    y = "two"
else:
    y = "three"
print("""
    This is some line of printed text
    This is some line of printed more text
    these {} and {} are variables designated by `str.format()`
    """.format(x, y))
print(x)

Я тоже не уверен, о чем вы спрашиваете, но это мое предположение о том, что вы ищете.

Другие вопросы по теме