Python’da bir karakterin ASCII değerini int olarak nasıl alabiliriz?
Bu dökümana göre:
ord()
fonksiyonu karakterin int değerini getirir. Ve bir takım işlemler yaptıktan sonra tekrar geri dönüştürmek isterseniz,chr()
fonksiyonu işe yarar.
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
Python 2’de, Unicode karakterini döndüren unichr
fonksiyonu bulunur:
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
chr
yerine Python 3’te unichr
kullanabilirsiniz.
Not: Burada ord() size “tam olarak” ascii değerini vermez (Python 3.6 ve Python 2.7 belgeleri). Hangi karakter kodlamasındaysanız o kodlamadaki karakterin sayısal değerini verir. Bu nedenle, Latin-1 kullanıyorsanız ord('ä')
sonucu 228 olabilir veya UTF-8 kullanıyorsanız bir TypeError
oluşturabilir.
Peki hangi karakter kodlamasında olduğumuzu nasıl bileceğiz?
Bu ilgilendiğimiz nesne türüne bağlı. Python3 (str) varsayılan olarak unicode
‘dur. Python3 (byte): str(b'\xc3\x9c', 'ascii')
: UnicodeDecodeError
hatası verir. Python3 (byte): str(b'\xc3\x9c', 'utf-8')
Ü
döndürür.