Pozwól, że wyjaśnię to po prostu: w Pythonie 2 możesz przechowywać ciąg znaków w 2 różnych typach.
Pierwszym z nich jest ASCII, który jest typu str w pythonie, wykorzystuje 1 bajt pamięci. (256 znaków, będzie przechowywać głównie angielskie alfabety i proste symbole)
Drugi typ to UNICODE, który jest typem Unicode w python. Unicode przechowuje wszystkie typy języków.
Domyślnie Python preferuje typ str, ale jeśli chcesz przechowywać ciąg w typie Unicode , możesz umieścić u przed tekstem, np. U'text, lub możesz to zrobić, wywołując Unicode („tekst”)
Więc u jest tylko krótki sposób, aby wywołać funkcję, aby rzutować str na Unicode . Otóż to!
Teraz część r , umieszczasz przed tekstem, aby poinformować komputer, że tekst jest tekstem surowym, ukośnik odwrotny nie powinien być znakiem ucieczki. r '\ n' nie utworzy nowego znaku linii. To tylko zwykły tekst zawierający 2 znaki.
Jeśli chcesz przekonwertować str na Unicode, a także wstawić tam nieprzetworzony tekst, użyj ur, ponieważ ru spowoduje błąd.
TERAZ ważna część:
Nie można zapisać jednego ukośnika odwrotnego za pomocą r , to jedyny wyjątek. Więc ten kod spowoduje błąd: r '\'
Aby zapisać ukośnik odwrotny (tylko jeden), musisz użyć „\\”
Jeśli chcesz przechowywać więcej niż 1 znaków można nadal korzystać z R jak r „\\” będzie produkować 2 backslashy jak oczekiwano.
Nie znam powodu, dla którego r nie działa z jednym magazynem ukośnika odwrotnego, ale powód nie jest jeszcze opisany przez nikogo. Mam nadzieję, że to błąd.