In Python we have two types of string:
The first one is the traditional str type and the second one is the newer Unicode type. When you type a string literal without u in front you get the old str type which stores 8-bit characters, and with u in front, you will get the newer Unicode type that can store any Unicode character.
Talking about r so it doesn't change the type at all, it just changes how the string literal is interpreted. Without using r, backslashes are treated as escape characters. With the r, backslashes are treated as literal. Either way, you can use both types are the same.