Ce face chr() și ord()
Fiecare caracter are un număr (cod Unicode). ord("A") este 65, iar chr(65) este "A". Literele românești au și ele coduri: ș (cu virgulă) este 537, diferit de varianta greșită cu sedilă, care are codul 351 și apare în texte vechi.
Sunt utile pentru cifruri simple, pentru a genera alfabetul sau pentru a verifica ce caracter se află de fapt într-un text.
Parametri
| Parametru | Descriere |
|---|---|
cod |
Pentru chr(): un număr între 0 și 1 114 111. |
caracter |
Pentru ord(): un text cu exact un caracter. |
Ce returnează
chr(): un text de un caracter. ord(): un întreg.
Exemple
Exemplul 1: Coduri și caractere
print(ord("A"), ord("a"), ord("ș"))
gresit = "Bra" + chr(351) + "ov"
print(gresit == "Brașov", gresit.replace(chr(351), "ș") == "Brașov")
print(chr(65), chr(537), chr(8364))
print("".join(chr(c) for c in range(ord("a"), ord("f") + 1)))
Rezultat
65 97 537
False True
A ș €
abcdef
Exemplul 2: Cifrul lui Cezar
def cezar(text, pas):
rezultat = ""
for c in text:
if "a" <= c <= "z":
rezultat += chr((ord(c) - ord("a") + pas) % 26 + ord("a"))
else:
rezultat += c
return rezultat
secret = cezar("atac la miezul noptii", 3)
print(secret)
print(cezar(secret, -3))
Rezultat
dwdf od plhcxo qrswll
atac la miezul noptii
Greșeli frecvente
- Dai lui
ord()un text cu mai multe caractere și primeștiTypeError: ord() expected a character.
Comenzi înrudite
str(): Tipul textelor (șiruri de caractere); str() transformă orice valoare în text.bin(), oct() și hex(): Transformă un număr întreg în text scris în baza 2, 8 sau 16.str.translate() și str.maketrans(): Înlocuiește sau șterge mai multe caractere deodată, după un tabel de traducere.