Рубрики
Без рубрики

Как напечатать строку без ‘\ N’ в Python

https://youtu.be/t_g4n0gwzgw Строки, печать и ‘\ n’ Печать базовой строки – это, вероятно, первая программа, большинство людей, я включаю в себя, писать в Python – это печатает («Hello World») ? С самого начала мы знаем, что принцип прост, мы можем пройти нашу строку через функцию Print (), и вывод будет отображаться … Как распечатать строку без «\ N» в Python Подробнее »

Автор оригинала: Rikesh Nichani.

Строки, печать и ‘\ n’

Печать Основной строки, наверное, первая программа большинство людей, я включал, пишут в Python – делает Печать (Hello World ') звучит знакомо? С самого начала мы знаем, что принцип прост, мы можем пройти нашу строку через Печать () Функция и выходные данные будут отображаться в командной строке, либо в интерактивном интерпретатере.

Как мы работаем больше с Строки , мы узнаем специальных персонажей, которые помогают нам с нашим форматированием – из которых '\ N' среди наиболее распространенных. В строках Python '\ N' используется для обозначения новой строки, то есть конца линии и начало нового. Есть явно время, когда мы специально хотим включить в наши строки в наших струнах, чтобы сделать текст более читаемым, однако, есть также время, когда мы не хотим напечатаны новой линии.

В этой статье мы посмотрим, как распечатать строку без включения новой строки. Поскольку это будет отличаться в зависимости от версии используемого Python, мы сосредоточимся на Python V3.

Метод 1: Ньюлайн и Python Print () функция

По умолчанию встроенный Python Печать () Функция добавляет новенький символ к концу каждого оператора печати. Это делается на основе, что если мы используем несколько операторов печати, каждое утверждение требует отдельного вывода, поэтому каждый выход должен появиться в новой строке. Например:

print('Hello, this is the first line')
print('and this is the next one')

Как видите, мы не включили никаких новичков ( '\ N' ) символов, это явно два независимых отпечатки печати. С чисто логической точки зрения вывод, напечатанный как две отдельные линии, не должен быть сюрпризом:

Hello, this is the first line
and this is the next one

Однако предположим, что есть причина, по которой мы хотим напечатать вывод на одной линии, но сохранять отдельные операторы печати? Для этого нам нужно посмотреть на синтаксис за функцией печати, которая содержит следующие параметры:

print(value,……., sep = ' ', end = '\n', file = sys.stdout, flush = False)

Параметр, который мы особенно заинтересованы в том, это конец , Который рассказывает Python Что каждый раз, когда мы называем эту функцию, она должна закончиться новой линией. Таким образом, даже если мы явно не запрашиваем новую строку, он включен по умолчанию. Чтобы остановить это, мы просто должны изменить значение по умолчанию «Конец» Параметр из '\ N' к тому, что мы хотим, чтобы это было. Если мы не хотим, чтобы там было что-то напечатано, мы можем оставить это пустым:

print('Hello, this is the first line' end='')
print('and this is the next one')

В качестве Newline больше не является значение по умолчанию в вышеуказанном коде, Python дает следующий выход:

Hello, this is the first lineand this is the next one

Мы можем даже отформатировать, чтобы включить место между двумя линиями, добавив место для «Конец» Параметр следующим образом:

print('Hello, this is the first line' end=' ')
print('and this is the next one')

На этот раз наш вывод правильно отформатирован:

Hello, this is the first line and this is the next one

Метод 2: Sys.Stdout Альтернатива

Другой вариант будет избегать использования функции Print (), чтобы показать нашу строку в целом. Как альтернатива, мы можем напрямую вызвать sys.stdout.write () метод. Это имеет преимущество не автоматически, включая новую строку каждый раз, когда мы проходим строку через него.

Если мы вернемся к предыдущему разделу и синтаксис Печать () Функция, мы даже можем видеть это sys.stdout на самом деле один из параметров: .stdout ‘. Stdout стоит за Стандартная выходная труба который находится там, где строка автоматически отправляется автоматически, я наша командная строка или интерактивный интерпретатор.

Поэтому можно пройти строку непосредственно через sys.stdout.write () , эффективно обход Печать () функция. Пожалуйста, имейте в виду, хотя, в то время как нам не нужно загружать модуль SYS, он должен быть импортирован, прежде чем мы сможем использовать его:

import sys
sys.stdout.write('Hello, this is the first line')
sys.stdout.write('and this is the next one')

Выход:

Hello, this is the first lineand this is the next one

В этом примере наш выход был «написан» на консоль напрямую. Как мы не использовали Печать () Функция нет проблем с значением Newline по умолчанию «Конец» параметр. На нижнем дне, невозможно отформатировать дисплей так же, как мы можем использовать Печать () Отказ

Метод 3: Ньюлайн в строке

До сих пор мы посмотрели, как остановить новую строку ( '\ N' ), быть автоматически добавленным, когда мы хотим распечатать нашу строку. Теперь давайте посмотрим, что произойдет, когда новенькие символы на самом деле содержатся в нашей строке Но мы не хотим, чтобы они были напечатаны.

Давайте сначала создадим строку, содержащую новенький перерыв, и назначьте его переменную «А» Отказ

a = 'Hello, this is the first line\nand this is the next one'
print(a)

Теперь, если мы распечатаем переменную, вывод будет отображаться через две строки, поскольку мы включили специальные символы '\ N' В рамках скрипта, который Python знает, чтобы выполнить в качестве новой строки.

Выход:

Hello, this is the first line
and this is the next one

В этом случае, потому что '\ N' персонажи физически содержатся в нашей строке, мы можем просто использовать заменить () Способ форматирования строки. Это возвращает копию строки, где все экземпляры определенной подстроки заменены на другую подстроку. Мы можем выбрать заменить подстроку, и только эта подстрока, со всем, что мы хотим, включая пустой символ:

a=a.replace('\n', '')
print(a)

Выход:

Hello, this is the first lineand this is the next one

Кроме того, заменить () Метод имеет «Считать» Параметр, который позволяет нам указать, сколько раз мы хотим заменить старую подстроку новым. Если значение не указано, он просто заменит все экземпляры старой подстроки. Чтобы проиллюстрировать, давайте обновим наш пример, чтобы включить несколько символов новой строки:

b = 'Hello, this is the first line\nand this is the next one\nand this is the next one\nbut I want this on a different line please'
print(b)

Выход:

Hello, this is the first line
and this is the next one
and this is the next one
but I want this on a different line please

В этом примере я не хочу первых двух новеньких персонажей, но я хочу сохранить третье место. Кроме того, а не просто пустой символ, который я хочу заменить '\ N' с пространством только для форматирования причин:

b=b.replace('\n', ' ', 2)
print(b)

Выход:

Hello, this is the first line and this is the next one and this is the next one
but I want this on a different line please

Резюме

В этой статье мы посмотрели, как распечатать строку без новой строки ( '\ N' ). Пока есть различные причины, которые могут быть необходимы, как мы можем остановить это, прежде всего, зависит от того, является ли новенькой частью нашей строки или автоматически вызывается через Печать () функция.

Если он вызывает функцию Print (), мы видели, как изменение по умолчанию конечного параметра может преодолеть это. Это, на мой взгляд, является самым простым вариантом. В то время как альтернатива sys.stdout Функция также предоставляет решение, кажется, очень сложный способ достижения того же результата.

Когда новая строка на самом деле является частью строки заменить () Функция позволяет указывать подстроку, которую мы хотим заменить. Это дает нам гибкость не только уточнения того, что мы хотим заменить его, но также предусматривать, сколько раз мы хотим, чтобы она заменена.

Оригинал: “https://blog.finxter.com/how-to-print-a-string-without-including-n-in-python/”