Я пытаюсь создать абзац строк, используя 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
Как использовать условные многострочные строки внутри многострочных строк?
В будущем упростите свой вопрос до самой простой формы. Я не уверен, правильно ли я вас понял, но я предполагаю, что вы хотите напечатать только свою строку 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 '')
Понял, спасибо! Я использую немного модифицированную версию этого типа, ...+ (f''' x=3,4''' if write_line_3nd4 == True else ''")
Может быть, это поможет.
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)
Я тоже не уверен, о чем вы спрашиваете, но это мое предположение о том, что вы ищете.
Извините за усложнение вопроса, я новичок в stackexchange. Я не могу использовать условие вне строки, потому что фактический абзац, который я пишу, огромен с большим количеством условных многострочных разделов в нем, поэтому было бы кошмаром отслеживать все условия вне основной строки из трех кавычек. . Есть ли лучший способ?