Подтвердить что ты не робот

Как работает строка с тройной цитатой Python?

Как изменить эту функцию для возврата "123456"?

def f():
    s = """123
    456"""
    return s

ОБНОВЛЕНИЕ: каждый, вопрос заключается в понимании того, как не иметь \t или что-то еще при наличии многострочного комментария, а не как использовать модуль re.

4b9b3361

Ответ 1

Не используйте строку с тремя кавычками, когда вам не нужны дополнительные пробелы, вкладки и символы новой строки.

Используйте неявное продолжение, оно более элегантно:

def f():
    s = ('123'
         '456')
    return s

Ответ 2

def f():
  s = """123\
456"""
  return s

Не отступайте ни одной из строк блока после первой строки; конец каждой строки, кроме последней, с обратной косой чертой.

Ответ 3

Последующие строки конкатенируются, поэтому вы можете использовать:

def f():
    s = ("123"
         "456")
    return s

Это позволит вам сохранить отступ по своему усмотрению.

Ответ 4

textwrap.dedent("""\
                123
                456""")

Из стандартной библиотеки. Первый "\" необходим, потому что эта функция работает, удаляя общие ведущие пробелы.

Ответ 5

Возможно, я пропустил что-то очевидное, но как насчет этого:

def f():
    s = """123456"""
    return s

или просто это:

def f():
    s = "123456"
    return s

или даже проще:

def f():
    return "123456"

Если это не ответит на ваш вопрос, пожалуйста, уточните, о чем идет речь.

Ответ 6

Возможно, вы захотите проверить этот str.splitlines([keepends])

Возвращает список строк в строке, разбивая границы строк. Этот метод использует универсальный подход новых линий к линиям расщепления. Разрывы строк не включаются в результирующий список, если дано и верно.

Python распознает "\ r", "\n" и "\ r\n" в качестве границ строки для 8-битных строк.

Итак, для рассматриваемой проблемы... мы могли бы сделать что-то вроде этого.

>>> s = """123
... 456"""
>>> s
'123\n456'
>>> ''.join(s.splitlines())
'123456'

Ответ 7

re.sub('\D+', '', s)

вернет строку, если вы хотите целое число, преобразовать эту строку с помощью int.

Ответ 8

Try

import re

а затем

    return re.sub("\s+", "", s)

Ответ 9

Мое предположение:

def f():
    s = """123
    456"""
    return u'123456'

Минимальное изменение и запрашивается.