Как вложить условные 3 строки в кавычки в другие 3 строки в Python? - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь создать абзац строк, используя 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

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

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

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

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)

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

0 голосов
/ 29 мая 2019

В будущем упростите ваш вопрос до самой простой формы.Я не уверен, правильно ли я вас понимаю, но я предполагаю, что вы хотите печатать только строку 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 '')
...