Как изменить эту функцию, чтобы она возвращала "123456"?
"123456"
def f(): s = """123 456""" return s
ОБНОВЛЕНИЕ: Все, вопрос в том, чтобы понять, как не иметь \ t или что-то еще, когда есть многострочный комментарий, а не как использовать модуль re.
re
Не используйте строку в тройных кавычках, если вам не нужны лишние пробелы, символы табуляции и новые строки.
Используйте неявное продолжение, оно более элегантно:
def f(): s = ('123' '456') return s
def f(): s = """123\ 456""" return s
Не ставить отступы ни одной из строк цитаты после первой строки; заканчивайте каждую строку, кроме последней, обратной косой чертой.
Последующие строки объединяются, поэтому вы можете использовать:
def f(): s = ("123" "456") return s
Это позволит вам сохранять отступы как вам угодно.
textwrap.dedent("""\ 123 456""")
Из стандартной библиотеки. Первый «\» необходим, потому что эта функция работает путем удаления общего начального пробела.
Может быть, я упускаю что-то очевидное, но как насчет этого:
def f(): s = """123456""" return s
или просто так:
def f(): s = "123456" return s
или даже проще:
def f(): return "123456"
Если это не отвечает на ваш вопрос, уточните, о чем идет речь.
Вы можете проверить это str.splitlines ([keepends])
Возвращает список строк в строке, ломающихся на границах строк. Этот метод использует универсальный подход новой строки для разделения строк. Разрывы строк не включаются в результирующий список, если keepends не дано и верно. Python распознает "\ r", "\ n" и "\ r \ n" как границы строк для 8-битных строк.
Возвращает список строк в строке, ломающихся на границах строк. Этот метод использует универсальный подход новой строки для разделения строк. Разрывы строк не включаются в результирующий список, если keepends не дано и верно.
Python распознает "\ r", "\ n" и "\ r \ n" как границы строк для 8-битных строк.
Итак, для рассматриваемой проблемы ... мы могли бы сделать что-то вроде этого ..
>>> s = """123 ... 456""" >>> s '123\n456' >>> ''.join(s.splitlines()) '123456'
Мое предположение:
def f(): s = """123 456""" return u'123456'
Минимальное изменение и делает то, что просят.
Попробуйте
import re
, а затем
return re.sub("\s+", "", s)
re.sub('\D+', '', s)
вернет строку, если вам нужно целое число, преобразуйте эту строку с int.
int