chr()
Zwraca znak o podanym kodzie Unicode, np. chr(65) to "A". Działa odwrotnie niż ord().
- Zwraca
- Napis złożony z jednego znaku.
Przykład
#print(chr(65), chr(97), chr(261))
print(chr(0x1F40D))
labels = [chr(ord("A") + i) for i in range(4)]
print(labels)Definicja i zastosowanie
#Funkcja chr(kod) zamienia liczbę całkowitą na jednoznakowy napis, którego numer w standardzie Unicode jest równy tej liczbie. chr(65) to "A", chr(97) to "a", a chr(261) to polskie "ą". Odwrotną zamianę, ze znaku na liczbę, wykonuje ord().
Unicode przypisuje numer każdemu znakowi: literom wszystkich alfabetów, cyfrom, symbolom i emoji. Poprawne kody mieszczą się w zakresie od 0 do 1 114 111 (szesnastkowo 0x10FFFF), a liczba spoza zakresu zgłasza ValueError. Kody często zapisuje się szesnastkowo, np. chr(0x1F40D) to emoji węża.
Kolejne litery alfabetu łacińskiego mają kolejne kody, dlatego chr() razem z ord() pozwala przesuwać litery, jak w szyfrze Cezara, albo generować etykiety odpowiedzi A, B, C, D. Polskie litery z ogonkami leżą poza tym ciągiem, więc takie obliczenia ich nie obejmują.
Składnia
#chr(i)Parametry
#i
int od 0 do 1114111
Kod znaku w standardzie Unicode.
Więcej przykładów
#def caesar(text, shift):
result = ""
for char in text:
if "a" <= char <= "z":
result += chr((ord(char) - ord("a") + shift) % 26 + ord("a"))
else:
result += char
return result
secret = caesar("python jest super", 3)
print(secret)
print(caesar(secret, -3))print("".join(chr(code) for code in range(ord("a"), ord("f") + 1)))
try:
chr(-1)
except ValueError as error:
print(error)Dobre praktyki
#- Do sprawdzania, czy znak jest literą albo cyfrą, używaj metod
isalpha()iisdigit()zamiast porównywania kodów. Działają też dla polskich liter. - Znak o znanym kodzie wpiszesz też wprost w napisie:
"\u0105"to"ą". - Wszystkie małe litery alfabetu łacińskiego zawiera gotowa stała
string.ascii_lowercase, bez potrzeby używaniachr().
Powiązane hasła
#- ord()Zwraca kod Unicode pojedynczego znaku, np. ord("A") to 65. Działa odwrotnie niż chr().
- str()Zamienia wartość na napis.
- int()Zamienia wartość na liczbę całkowitą.
- str.isdigit()Sprawdza, czy napis składa się wyłącznie z cyfr.
- Wycinki napisów [start:stop:step]Pobieranie fragmentów napisu po indeksach.
Widzisz błąd albo brakuje przykładu? Napisz do nas.