Как обернуть очень длинную строку, использующую спецификаторы формата / заполнители?

#python

#python

Вопрос:

Я знаю, вам не терпится пометить это как дубликат, но разница в том, что я использую заполнитель формата.

исходная строка

 print(f"There are {rangeSegment} numbers between {rangeStart} and {rangeEnd} inclusively blah blah blah.")
  

Использование принятого предложения PEP8 и принятого ответа в StackOverflow предполагает использование подразумеваемой конкатенации, но это приводит к выводу с символом табуляции.

 print(f"There are {rangeSegment} numbers between {rangeStart} and " 
    "{rangeEnd} inclusively.")
  

вывод

 There are 10 numbers between 1 and     10 inclusively.
  

и попытка разбить на несколько кавычек нарушает форматирование строки.

 print(f"There are {rangeSegment} numbers between {rangeStart} and" 
    "{rangeEnd} inclusively.")
  

вывод

 There are 10 numbers between 1 and {rangeEnd} inclusively.
  

Комментарии:

1. Просто поместите префикс f в оба строковых литерала. Не удается воспроизвести символ табуляции, появляющийся / голосующий за закрытие из-за опечатки.

Ответ №1:

Попробуйте это:

 print(f"There are {rangeSegment} numbers between {rangeStart} and " 
          f"{rangeEnd} inclusively.")
  

Вам нужно поместить f для обоих укусов.

Ответ №2:

У вас большая часть этого работает. Все, что вам нужно сделать, это использовать f перед каждой строкой в вашем операторе печати.

 rangeSegment = 20
rangeStart = 2
rangeEnd = 15

print(f"There are {rangeSegment} numbers between {rangeStart} and " 
      f"{rangeEnd} inclusively.") 
      f" I am going to have another line here {rangeStart} and {rangeEnd}." 
      f" One last line just to show that i can print more lines.")
  

Приведенное выше утверждение выведет следующее:

 There are 20 numbers between 2 and 15 inclusively. I am going to have another line here 30 and 40. One last line just to show that i can print more lines.
  

Обратите внимание, что если вы хотите разорвать промежуточную строку, то вам нужно использовать n там, где, по вашему мнению, вы хотите разорвать.

Например, если ваш оператор печати был следующим:

 print(f"There are {rangeSegment} numbers between {rangeStart} and " 
    f"{rangeEnd} inclusively.n"  
    f"I am going to have another line here {rangeStart} and {rangeEnd}n" 
    f"One last line just to show that i can print more lines")
  

Тогда ваш вывод будет следующим. n Создаст новую строку.

 There are 20 numbers between 30 and 40 inclusively.
I am going to have another line here 30 and 40
One last line just to show that i can print more lines
  

Ответ №3:

добавьте n в строку, с которой вы хотите начать следующую строку