Karakter dizileri ve listeler

f = open(dosya_adı, ‘rb’)
data = f.read(10)
if data[6:11] in [b"JFIF", b"Exif"]:
print(“Bu dosya JPEG!”)
else:
print(“Bu dosya JPEG değil!”)

merhaba arkadaşlar!
bu kodda [b"JFIF", b"Exif"]: kısmında neden karaktger dizileri değilde liste kullandık?
yardımcı olursanız sevinirim:)

[quote=“Abduleliacik, post:1, topic:13055”]
Aslında karakter dizileri de kullanılabilir.
Burada bahsi geçen data,
data = b'\xff\xd8\xff\xe0\x00\x10JFIF'
şeklinde çıktı vermektedir ve
data[6:11] = b'JFIF'
şeklinde çıktı vermektedir.

Burada alınan çıktı b"JFIF" veya b"Exif" olduğunda ekrana “Bu dosya JPEG!” yazdırılmak istendiğinden koşul cümlesi de buna göre ayarlanmış.

Dilerseniz söz konusu koşul satırını karakter dizisi kullanarak
if data[6:11] == b"JFIF" or data[6:11] == b"Exif":
şeklinde oluşturabilirsiniz.

Orada kullanılan yöntem basitçe şu şekilde anlatılabilir.

sayi = 4
if sayi in [1, 2, 3, 4, 5]:
    print("Sayı listenin içinde!")
else:
    print("Sayı listenin içinde değil!")

Bu kod örneğinde sayi değişkeninin belirtilen liste içerisinde olup olmadığını kontrol ediyoruz.

renk = "kırmızı"
if renk in ["mavi", "yeşil", "kırmızı"]
    print("Renk listenin içinde!")
else:
    print("Renk listenin içinde değil!")

Hemen üstteki kod örneğinde de renk değişkeni listenin içerisinde mi diye kontrol ediyoruz.
Bu işlemler uzun uzun karakter dizileri ile de yapılabilirdi ama eğer ki kabarık bir listeniz varsa ve bir şeyin listede bulunup bulunmadığını kontrol etmek istiyorsanız “if a in b:” şeklindeki yöntem oldukça kullanışlı olacaktır.

Kısaca: Belirtmiş olduğunuz kodlarda yer alan koşul cümlesi, data[6:11]'in liste içerisinde belirtilen elemanlardan herhangi birisi olup olmadığını kontrol eder. Tabii yalnızca 2 eleman bulunduğundan bunu kolayca karakter veri tipleriyle de oluşturabilirsiniz.

Karakter dizileri kullanmaktan kasit nedir?

Byte dizileri kullandik cunku data’nin turu bytes. Liste kullandik cunku yapmak istedigimiz sey bir listenin elemanlariyla karsilastirmak.

1 Beğeni

yardımcı olduğunuz için teşekkürler :slight_smile:

1 Beğeni

yardımcı olduğunuz için teşekkür ederim :slight_smile: