#python
#питон
Вопрос:
У меня есть строковое значение, печатаемое в нескольких строках. Я использовал три одинарные / двойные кавычки для присвоения строкового значения
artist = """
Mariah
Carey
"""
name = 'My all'
realeased_year = 1997
genre = 'Latin'
duration_seconds = 231
print(f'{artist}(full name has {len(artist.strip().replace(" ", ""))} characters) and her song '{name}' was released in {realeased_year 1}')
Он выводит неправильное количество символов: 12
Однако, когда я присваиваю строковое значение в одной строке, например
artist = 'Mariah Carey'
У меня есть правильное количество символов 11
Можно ли удалить все пробелы (начальные, средние и конечные) из многострочного строкового значения без использования регулярных выражений
Комментарии:
1. Если вы попытаетесь выполнить artist = «Marian Carey» и print(len(artist.strip())). Вы найдете тот же вывод длиной 12 символов. Пожалуйста, проверьте еще раз.
Ответ №1:
str.split()
разбивает строку на пробелы, чтобы вы могли сделать это:
>>> artist = """
... Mariah
... Carey
... """
>>> ' '.join(artist.split())
'Mariah Carey'
Это разделит строку на список слов. Затем эти слова объединяются одним разделителем пробела.
Я предположил, что вы захотите сохранить одно пространство между словами, однако, если вы хотите избавиться от всех пробелов, тогда соедините с пустой строкой:
>>> ''.join(artist.split())
'MariahCarey'
Измените отображаемую строку:
>>> print(f'{artist}(full name has {len("".join(artist.split()))} characters)')
Mariah
Carey
(full name has 11 characters)
Комментарии:
1. как вы думаете, вы можете предоставить полную версию своего ответа? столкнувшись с синтаксической ошибкой, спасибо
2. @DurdonaA.: для меня выглядит как полная версия… Я вырезал и вставил дословно из терминала.
3. форматирование с помощью {f»»} выдает синтаксическую ошибку
4. Используйте двойные кавычки, подобные этому:
"".join()
5. @DurdonaA.: добро пожаловать. Пожалуйста, подумайте о принятии этого ответа, если вы считаете, что он отвечает на ваш вопрос.
Ответ №2:
Когда вы используете тройные кавычки и используете ввод для разделения строк, python вставляет n
символ, который также добавляется к общему количеству символов. Итак , в следующей строке
print(f'{artist}(full name has {len(artist.strip().replace(" ", ""))} characters) and her song '{name}' was released in {realeased_year 1}')
в функции замены вместо " "
использования "n"
.
Комментарии:
1. получение ошибки SyntaxError: часть выражения f-string не может включать обратную косую черту
2. Если вам нужно или вы хотите использовать f-string, вы можете присвоить
len(artist.strip().replace(" ", ""))
переменной и использовать эту переменную в своемlength = len(artist.strip().replace(" ", ""))
и использовать length в3. Его работа отлично соответствует требованию вопроса.