Selamlar. Bu yazının konusu Python bytearray fonksiyonu nedir. Bir önceki yazıda bool fonksiyonu hakkında bilgiler sunmuştum. Normalde bytelarda herhangi bir şekilde değişim işlemi uygulanmamakta. Ancak Python bu durur mu yapıştırmış cevabı. Al sana bytearray demiş.
Python bytearray fonksiyonu nedir?
Aslında yukarıda basit olarak bi ipucu verdim. Byte türünde verilerle çalışıyorsunuz ve bu türden veriler üzerinde değişiklikler yapmak istiyorsanız byte fonksiyonunu kullanmanız gerekmekte. Bunun kardeşi ise bytes fonksiyonudur. O ayrı bir yazının konusu. Bu konu hakkında resmi dokümanda da görülebileceği üzere bytelardan oluşan bir diziden bahsediliyor. Dikkat çekilmesi gereken bir önemli ise artık mutable yani değiştirilebilir veri ile çalışıyor olacağımız. Normalde immutable durumdadır.
Bilgiler
bytearray opsiyonel olmak üzere üç adet parametre alır. Bu parametreler source, encoding ve error olarak belirtilmektedir. Bunlardan bahsetmek gerekiyor.
Source: Bytelardan olusan bir dizi icin bi kaynak. Bu bir string, integer, object olabilir ya da iterable bir nesne. Eğer source bir string ise mutlaka encoding değeri belirtilmelidir. Diyelim ki source bir iterable nesne. Iterable nesnenin count degeri kadar bir array olusturur. Bu iterable count icerisinde integer degerler olmalidir. Ornegin string bir iterable yaparsaniz TypeError firlatilir. O yuzden iterable nesne elemanlari sayilardan olusmali ve mutlaka 0 <= x < 256 olmalidir. integer kuralina uymazsaniz ValueError firlatilir.
Encoding: Eger bytearray fonksiyonu source yani kaynak degeri string olarak aliyor ise girilen string degerin encode edilmesi gerekmektedir. Cogu gelistirici bunu utf-8 olarak ayarlamakta. Tabi farkli opsiyonlari da kullanmak sizin elinizde.
Errors: Bu parametre ise kendisine ait bazi alt degerler icermektedir. Eger errors kullanilacak ise bunlardan birisini kullanmaniz gerekiyor strict, replace, ignore, xmlcharrefreplace ve backslashreplace alinmasi mumkun degerlerdir [Kaynak].
Kullanımı
Yukarıdaki bilgiler ışığında bazı örnekler yapalım
string deger ve bytearray
string = "Python harikadir" ba = bytearray(string, encoding="ascii") ba[15] = 65 print(ba)
Dönen değer bytearray(b’Python harikadiA’) olmaktadır.
integer deger ve bytearray
Eger integer bir deger kullanacaksak soyle yapmaliyiz:
i = 5 ba = bytearray(i) print(ba)
Donen deger bytearray(b’\x00\x00\x00\x00\x00′) olmaktadir.
iterable deger ve bytearray
Eger iterable bir nesne kullanacaksak asagidaki sekilde kullanmaliyiz.
arr = [1, 2, 3] ba = bytearray(arr) print(ba)
Donen deger bytearray(b’\x01\x02\x03′) olmaktadir.
Oluşması Mümkün Hatalar
Bazı durumlarda hatalar ortaya çıkmaktadır. Bu hatalar muhtemelen doğru olmayan kullanımdan kaynaklıdır.
TypeError
Şöyle bir kullanım TypeError verecektir. Çünkü string deger encoding gerektirmektedir:
s = "Merhaba" ba = bytearray(s) print(ba)
ValueError
Bu kullanımda muhtemelen iterable nesne elemanlarından birisinin degeri 0 <= x < 256 kuralina aykiridir.
s = [256] ba = bytearray(s) print(ba)
Arkadaslar bu yazi bu kadar. Yazinin konusu Python bytearray fonksiyonu nedir oldu. Bir parca da olsa size faydali olabildiysem ne mutlu. Eger hatali bir nokta ya da onerileriniz var ise bildirirseniz sevinirim. Okudugunuz icin tesekkurler.
Bu arada yazinin uzerine Sumi Ko – Sposa, Son Disprezzata (Vivaldi) iyi gider. Dinleyin isterseniz.