String bruta em Python
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.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn