HOWTO · Python

String bruta em Python

Este tutorial dirá o que o termo r representa antes de uma string em Python.

Nesta página

Existem muitas maneiras de representar strings em Python. Uma forma de representar strings é convertê-los em strings brutos.

Este tutorial definirá uma string bruta em Python.

String bruta em Python

A string bruta em Python é apenas qualquer string usual prefixada por um r ou R. Qualquer barra invertida (\) presente na string é tratada como um caractere real ou literal. Por exemplo, se uma string tiver \n ou \t entre eles, ela será considerada um caractere e não uma nova linha ou um caractere tabulação.

Vamos dar um exemplo do uso do caractere de nova linha \n entre uma string sem prefixar a string com r ou R.

print("Hi\nHow are you?")

Produção:

Hi
How are you?

Agora, vamos prefixar a string inteira com o caractere de string bruto r.

print(r"Hi\nHow are you?")

Produção:

Hi\nHow are you?

Como você pode ver, o caractere de nova linha \n é tratado como uma string literal e não como um caractere especial.

Strings brutos inválidos em Python

Uma única barra invertida \ não é considerada uma string bruta válida em Python.

print(r"\")

Produção:

File "<ipython-input-6-6cdee2fbdda0>", line 1
    print(r"\")
               ^
SyntaxError: EOL while scanning string literal

Uso de Strings Raw em Python

Em Python, strings brutas são usadas para retornar uma string quando ela não é processada. Isso significa que se uma string é prefixada com um r ou uma string bruta e essa string consiste em qualquer caractere de escape inválido como \x, então um erro não ocorrerá.

Aqui está um exemplo de código.

print("Hi\xHow are you?")

Produção:

 File "<ipython-input-15-1056651b28e1>", line 1
    print("Hi \x How are you?")
          ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 3-4: truncated \xXX escape

Observe que a string não é prefixada com r e há um caractere de escape inválido entre a string. Portanto, ocorreu um erro.