chr() și ord() în Python

Funcții încorporate Python 3.0+

ord() dă codul Unicode al unui caracter; chr() dă caracterul pentru un cod.

Sintaxă
chr(cod)
ord(caracter)

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ști TypeError: ord() expected a character.

Comenzi înrudite