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