O seguinte descreve a operação de cordas contendo novas linhas em Python.
- Criar cadeia contendo novas linhas, imprimir saída (display)
- novo carácter de linha (ou um ou ambos de CR e LF dependendo do sistema)
\n
(LF),\r\n
(CR+LF) - citação tripla
'''
,"""
- Se quiser indentar
- novo carácter de linha (ou um ou ambos de CR e LF dependendo do sistema)
- Concatenar uma lista de cordas com novas linhas
- Dividir cadeia em novas linhas e lista:
splitlines()
- Retirar e substituir os códigos de alimentação de linha
- Saída de impressão sem traçar nova linha
Criar cadeia contendo novas linhas, imprimir saída
novo carácter de linha (ou um ou ambos de CR e LF dependendo do sistema) \n(LF), \r\n(CR+LF)
A inserção de um código de alimentação de linha dentro de uma cadeia de caracteres resultará numa nova linha.
s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3
Os códigos de alimentação de linha podem ser utilizados das seguintes formas. Alguns editores permitem-lhe seleccionar um código de quebra de linha.
Macを含むUnix系 | \n (LF) |
Windows系 | \r\n (CR+LF) |
citação tripla ''',"""
Se forem usadas citações triplas para encerrar a cadeia, será uma cadeia como está, incluindo novas linhas.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Se quiser indentar
As aspas triplas são também espaços em cadeia, por isso, se tentar escrever ordenadamente em código e travessão como se mostra abaixo, serão inseridos espaços desnecessários.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
Utilizando uma barra invertida para ignorar novas linhas no código e torná-lo uma linha de continuação, pode ser escrito da seguinte forma
Fechar cada linha com '' ou “” e adicionar um novo carácter de linha ←n no final da frase.
s = 'Line1\n'\
'Line2\n'\
'Line3'
print(s)
# Line1
# Line2
# Line3
Aqui, a sintaxe é que as sucessivas literaturas das cordas são concatenadas. Ver o artigo seguinte para detalhes.
- Artigos relacionados:Concatenar e unir cordas em Python (+ operador, juntar, etc.)
Se quiser adicionar indentação numa corda, basta adicionar um espaço à corda em cada linha.
s = 'Line1\n'\
' Line2\n'\
' Line3'
print(s)
# Line1
# Line2
# Line3
Além disso, uma vez que as quebras de linha podem ser feitas livremente entre parênteses, o seguinte pode ser escrito usando parênteses em vez de contrabarragens.
s = ('Line1\n'
'Line2\n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1\n'
' Line2\n'
' Line3')
print(s)
# Line1
# Line2
# Line3
Se quiser apenas alinhar o início de uma linha, basta adicionar uma barra invertida à primeira linha de aspas triplas.
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Concatenar uma lista de cordas com novas linhas
O método string join() pode ser usado para concatenar uma lista de cordas numa única corda.
- Artigos relacionados:Concatenar e unir cordas em Python (+ operador, juntar, etc.)
Quando join() é chamado a partir de um carácter de nova linha, cada elemento de corda é concatenado com uma nova linha.
l = ['Line1', 'Line2', 'Line3']
s_n = '\n'.join(l)
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
s_rn = '\r\n'.join(l)
print(s_rn)
# Line1
# Line2
# Line3
print(repr(s_rn))
# 'Line1\r\nLine2\r\nLine3'
Como no exemplo acima, a função repr() integrada pode ser utilizada para verificar as cadeias que contêm novos códigos de linha tal como eles são.
Dividir cadeia em novas linhas e lista: splitlines()
O método de cadeia dividida() pode ser usado para dividir uma cadeia em uma lista de novas linhas.
linhas divididas() irá dividir qualquer um dos seguintes códigos de quebra de linha. As separadores verticais e as quebras de página também são divididas.
\n
\r\n
\v
\f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
Retirar e substituir os códigos de alimentação de linha
Combinando linhas divididas() e join(), é possível remover (remover) códigos de novas linhas de uma cadeia contendo novas linhas ou substituí-las por outras cadeias de caracteres.
s = 'Line1\nLine2\r\nLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Também é possível a alteração dos códigos de alimentação de linha por lotes. Mesmo que os códigos de quebra de linha sejam mistos ou desconhecidos, podem ser divididos usando linhas divididas() e depois concatenados com o código de quebra de linha desejado.
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
Como mencionado acima, as linhas divididas() dividirão os códigos de novas linhas, pelo que não há necessidade de estar particularmente preocupado com os códigos de novas linhas no caso do método que combina linhas divididas() e join().
Se o código da nova linha for claro, também pode ser substituído pelo método replace(), que substitui a cadeia de caracteres.
s = 'Line1\nLine2\nLine3'
print(s.replace('\n', ''))
# Line1Line2Line3
print(s.replace('\n', ','))
# Line1,Line2,Line3
Note-se, contudo, que não funcionará se contiver códigos de alimentação de linha diferentes dos esperados.
s = 'Line1\nLine2\r\nLine3'
s_error = s.replace('\n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2\r,Line3'
s_error = s.replace('\r\n', ',')
print(s_error)
# Line1
# Line2,Line3
print(repr(s_error))
# 'Line1\nLine2,Line3'
É possível substituir múltiplos códigos de novas linhas repetindo a substituição(), mas não funcionará se a ordem estiver errada porque “rn” contém “\n”. O método que combina linhas divididas() e join() descrito acima é mais seguro porque não há necessidade de se preocupar com os códigos de alimentação de linha.
s = 'Line1\nLine2\r\nLine3'
print(s.replace('\r\n', ',').replace('\n', ','))
# Line1,Line2,Line3
s_error = s.replace('\n', ',').replace('\r\n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2\r,Line3'
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Utilize o método rstrip() para remover códigos de alimentação de linha no final de uma frase. rstrip() é um método para remover caracteres de espaço branco (incluindo alimentação de linha) na extremidade direita de uma cadeia de caracteres.
s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Saída de impressão sem traçar nova linha
A função print() acrescenta por defeito uma nova linha de traçado. Portanto, se a função print() for executada em sucessão, cada resultado de saída será exibido numa nova linha.
print('a')
print('b')
print('c')
# a
# b
# c
Isto porque o valor padrão do argumento final da impressão(), que especifica a cadeia a ser adicionada no final, é o símbolo da nova linha.
Se não quiser uma nova linha no final, basta definir o fim do argumento para uma linha vazia, e a saída será feita sem uma nova linha no final.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
O fim do argumento pode ser qualquer fio.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
No entanto, se quiser concatenar as cordas para a produção, é mais fácil concatenar as cordas originais do que especificá-las no argumento final da impressão(). Ver o artigo seguinte.
- Artigos relacionados:Concatenar e unir cordas em Python (+ operador, juntar, etc.)