Concatenação de Strings em Python

A concatenação de strings é uma operação muito comum na programação. A concatenação de strings em Python pode ser feita de várias maneiras. Este tutorial tem como objetivo explorar diferentes maneiras de concatenar strings em um programa Python.

Concatenação de Strings em Python

Podemos realizar a concatenação de strings usando as seguintes maneiras:

  • Usando o operador +
  • Usando o método join()
  • Usando o operador %
  • Usando a função format()
  • Usando f-string (Interpolação Literal de Strings)

Concatenação de Strings usando o Operador +

Esta é a maneira mais simples de concatenar strings. Vamos ver um exemplo simples.

s1 = 'Apple'
s2 = 'Pie'
s3 = 'Sauce'

s4 = s1 + s2 + s3

print(s4)

Saída: ApplePieSauce Vamos ver outro exemplo onde iremos obter duas strings a partir da entrada do usuário e concatená-las.

s1 = input('Please enter the first string:\n')
s2 = input('Please enter the second string:\n')

print('Concatenated String =', s1 + s2)

Saída:

Please enter the first string:
Hello
Please enter the second string:
World
Concatenated String = HelloWorld

É muito fácil usar o operador + para concatenar strings. No entanto, os argumentos devem ser do tipo string.

>>>'Hello' + 4
Traceback (most recent call last):
  File "<input>", line 1, in 
TypeError: can only concatenate str (not "int") to str

Podemos usar a função str() para obter a representação de string de um objeto. Vamos ver como concatenar uma string a um inteiro ou outro objeto.

print('Hello' + str(4))


class Data:
    id = 0

    def __init__(self, i):
        self.id = i

    def __str__(self):
        return 'Data[' + str(self.id) + ']'


print('Hello ' + str(Data(10)))

Saída:

Hello4
Hello Data[10]

O maior problema com o operador + é que não podemos adicionar nenhum separador ou delimitador entre strings. Por exemplo, se tivermos que concatenar “Olá” e “Mundo” com um separador de espaço em branco, teremos que escrevê-lo como "Olá" + " " + "Mundo".

Concatenação de strings usando a função join()

Podemos usar a função join() para concatenar strings com um separador. É útil quando temos uma sequência de strings, por exemplo, lista ou tupla de strings. Se você não quiser um separador, então use a função join() com uma string vazia.

s1 = 'Hello'
s2 = 'World'

print('Concatenated String using join() =', "".join([s1, s2]))

print('Concatenated String using join() and whitespaces =', " ".join([s1, s2]))

Saída:

Concatenated String using join() = HelloWorld
Concatenated String using join() and spaces = Hello World

Concatenação de strings usando o operador %

Podemos usar o operador % para formatação de strings; ele também pode ser usado para concatenação de strings. É útil quando queremos juntar strings e realizar formatação simples.

s1 = 'Hello'
s2 = 'World'

s3 = "%s %s" % (s1, s2)
print('String Concatenation using % Operator =', s3)

s3 = "%s %s from JournalDev - %d" % (s1, s2, 2018)
print('String Concatenation using % Operator with Formatting =', s3)

Resultado:

String Concatenation using % Operator = Hello World
String Concatenation using % Operator with Formatting = Hello World from JournalDev - 2018

Concatenação de Strings usando a função format()

Podemos utilizar a função format() de strings para concatenação e formatação de strings.

s1 = 'Hello'
s2 = 'World'

s3 = "{}-{}".format(s1, s2)
print('String Concatenation using format() =', s3)

s3 = "{in1} {in2}".format(in1=s1, in2=s2)
print('String Concatenation using format() =', s3)

Resultado:

String Concatenation using format() = Hello-World
String Concatenation using format() = Hello World

A função format() de strings em Python é muito poderosa; utilizá-la apenas para concatenar strings não é seu uso adequado.

Concatenação de Strings usando f-string

Se estiver utilizando o Python 3.6 ou superior, você pode usar f-string para concatenação de strings. É uma nova forma de formatar strings, introduzida no PEP 498 – Interpolação Literal de Strings.

s1 = 'Hello'
s2 = 'World'

s3 = f'{s1} {s2}'
print('String Concatenation using f-string =', s3)

name = 'Pankaj'
age = 34
d = Data(10)

print(f'{name} age is {age} and d={d}')

Resultado:

String Concatenation using f-string = Hello World
Pankaj age is 34 and d=Data[10]

A f-string em Python é mais limpa e mais fácil de escrever quando comparada à função format(). Ela também chama a função str() quando um argumento do tipo objeto é utilizado como substituição de campo.

Conclusão

A formatação de strings em Python pode ser feita de várias maneiras. Use-as com base em seus requisitos. Se você precisar concatenar uma sequência de strings com um delimitador, use a função join(). Se alguma formatação também for necessária com a concatenação, use a função format() ou f-string. Observe que f-string pode ser usada com Python 3.6 ou versões superiores.

Você pode conferir o script Python completo e mais exemplos de Python em nosso Repositório GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-string-concatenation