Python Dersleri 7 Escape Kaçış Karakterleri

0 851

Python Derslerimizin 7. bölümü Escape karakterler konusuna giriş yapıyoruz.

Python’da karakter dizilerini tanımlayabilmek için tek, çift veya üç tırnak işaretlerinden işaretlerinden faydalanabiliriz. Python bir verinin karakter dizisi olup olmadığına bu tırnak işaretlerine bakarak karar verdiği için, tek, çift ve üç tırnak işaretleri Python açısından özel bir önem taşımaktadır. Zira Python’ın gözünde bir başlangıç tırnağı ile bitiş tırnağı arasında yer alan her şey bir karakter dizisidir.

print(“Merhaba Dünya”)

print(‘Merhaba Dünya’)

print(“””Merhaba Dünya”””)

Yukarıdaki örnekte görebileceğiniz gibi 3 farklı kullanımda python’da karakter dizilerini yazdırmak için kullanılabilir. 3 farklı kullanımın olmasının başlıca sebebi yazdırlacak metin içindeki tırnak varsa hatalardan kaçınmaktır.

print(“Türkiye’nin başkenti Ankara’dır”)

Üstteki örnekte görüldüğü gibi eğer metin içinde tırnak varsa bu karakter dizisini çift tırnak içine almak hatayı önler.

Benzer biçimde:

Print(‘Ayşe,”yarın matematik sınavımız var.” Demişti.’)

Burada da bir insanın konuşmasında alıntı yaptık. Burada print içindeki karakter dizisine çift tırnak ile başlamış olsaydık hata oluşmuş olacaktı.

Karakter dizisi bu şekilde tanımlandıktan sonra Python cümlenin geri kalanını okumaya devam ediyor ve herhangi bir tırnak işareti ile başlamayan ve kendisinden önce gelen öğeden herhangi bir virgül işareti ile ayrılmamış ‘Bugün’ kelimesini görüyor. Eğer bir kelime tırnak işareti ile başlamıyorsa bu kelime ya bir değişkendir ya da sayıdır. Ama ‘Bugün’ kelimesi ne bir değişken, ne de bir sayı olduğu, üstelik önceki öğeden de virgülle ayrılmadığı için Python’ın hata vermekten başka çaresi kalmıyor.

Bu yöntem tamamen geçerli ve mantıklıdır. Ama eğer istersek, aynı karakter dizisini çift tırnakla tanımlayıp, yine de hata almayı engelleyebiliriz.

İşte burada ‘kaçış dizileri’ adı verilen birtakım araçlardan faydalanacağız.

Escape karakterler (Kaçış Dizileri)

Escape karakterler Kaçış Dizileri
Escape karakterler (Kaçış Dizileri)

Yukarıdaki örneklerden bağımsız olarak isteseydik çift tırnakla başladığımız bir dizinin içine yine çift tırnakla bir ifade yazabiliriz. Bunun için kaçış dizileri escape karakterler dediğimiz karkterleri kullanıyoruz.

Escape Sequence Kaçış Dizileri nedir?

Kaçış dizileri, Python’da özel anlam taşıyan işaret veya karakterleri, sahip oldukları bu özel anlam dışında bir amaçla kullanmamızı sağlayan birtakım araçlardır. Mesela yukarıda da örneklerini verdiğimiz gibi, tırnak işaretleri Python açısından özel anlam taşıyan işaretlerdir. Normalde Python bu işaretleri karakter dizilerini tanımlamak için kullanır. Ama eğer siz mesela bir metin içinde bu tırnak işaretlerini farklı bir amaçla kullanacaksanız Python’ı bu durumdan haberdar etmeniz gerekiyor. İşte kaçış dizileri, Python’ı böyle bir durumdan haberdar etmemize yarayan araçlardır.

Python’da pek çok kaçış dizisi bulunur. Biz burada bu kaçış dizilerini tek tek inceleyeceğiz. O halde hemen işe koyulalım.

Ters Taksim (\)

>>> print(‘Yarın Adana\’ya gidiyorum.’)

Yarın Adana’ya gidiyorum.

Bir örnek daha verelim:

>>> print(“\”book\” kelimesi Türkçede \”kitap\” anlamına gelir.”)

“book” kelimesi Türkçede “kitap” anlamına gelir.

Burada da cümle içinde çift tırnak işaretlerini kullandığımız halde, \ işaretleri sayesinde karakter dizilerini yine çift tırnakla tanımlayabildik.

Bir de şu örneğe bakalım:

>>> print(“Python programlama dilinin adı \”piton\” yılanından gelmez”)

Bütün bu örneklerde, karakter dizisini hem çift tırnakla tanımlayıp hem de karakter dizisi içinde çift tırnak işaretlerini kullandığımız halde, herhangi bir hata almadığımızı görüyorsunuz. Yukarıdaki kodlarda hata almamızı önleyen şeyin \ işareti olduğu belli. Ama dilerseniz bu işaretin, hata almamızı nasıl önlediğini anlatmadan önce son bir örnek daha verelim.

Bütün örneklerde \ işaretini kullandığımızı görüyorsunuz. İşte bu tür işaretlere Python’da kaçış dizisi (escape sequence) adı verilir. Bu işaretler karakter dizilerini tanımlarken oluşabilecek hatalardan kaçmamızı sağlar. Peki bu \ işareti nasıl oluyor da karakter dizisini tanımlarken hata almamızı önlüyor? Gelin bu süreci adım adım tarif edelim:

Bu hatayı önlemek için ‘piton’ kelimesinin başındaki çift tırnağın soluna bir adet \ işareti yerleştirerek Python’a, ‘Aradığın tırnak bu değil!’ mesajı veriyoruz. Yani bir bakıma, \ adlı kaçış dizisi kendisini tırnak işaretine siper edip Python’ın bu tırnağı görmesine mani oluyor…

Bunun üzerine Python bu çift tırnak işaretini görmezden gelerek, soldan sağa doğru okumaya devam eder ve yol üzerinde ‘piton’ kelimesinin sonundaki çift tırnak işaretini görür. Eğer burada da bir önlem almazsak Python yine bir hata verecektir.

Satır Başı (\n)

Python’daki en temel kaçış dizisi biraz önce örneklerini verdiğimiz \ işaretidir. Bu kaçış dizisi başka karakterlerle birleşerek, farklı işlevlere sahip yeni kaçış dizileri de oluşturabilir.

Satır başı karakterine ‘yeni satır karakteri’ dendiği de olur.

Satır başı karakterini ilk öğrendiğimizde bu karakteri anlatırken bazı örnekler de vermiştik:

>>> print(“birinci satır\nikinci satır\nüçüncü satır”)

birinci satır

ikinci satır

üçüncü satır

Sekme (\t)

Python’da \ işareti sadece ‘n’ harfiyle değil, başka harflerle de birleşebilir. Örneğin \ işaretini ‘t’ harfiyle birleştirerek yine özel bir anlam ifade eden bir kaçış dizisi elde edebiliriz:

>>> print(“abc\tdef”)

abc def

Burada \t adlı kaçış dizisi, “abc” ifadesinden sonra sanki Tab (sekme) tuşuna basılmış gibi bir etki oluşturarak “def” ifadesini sağa doğru itiyor. Bir de şu örneğe bakalım:

>>> print(“bir”, “iki”, “üç”, sep=”\t“)

bir     iki     üç

Zil Sesi (\a)

\ işaretinin birleştiğinde farklı bir anlam türettiği bir başka harf de ‘a’ harfidir. \ işareti ‘a’ harfiyle birleşerek !bip! benzeri bir zil sesi üretilmesini sağlayabilir:

>>> print(“\a“)

!bip!

İsterseniz yukarıdaki komutu şu şekilde yazarak, kafa şişirme katsayısını artırabilirsiniz:

>>> print(“\a” * 10)

Aynı Satır Başı (\r)

Bu kaçış dizisi, bir karakter dizisinde aynı satırın en başına dönülmesini sağlar. Bu kaçış dizisinin işlevini tanımına bakarak anlamak biraz zor olabilir. O yüzden dilerseniz bu kaçış dizisinin ne işe yaradığını bir örnek üzerinde göstermeye çalışalım:

>>> print(“Merhaba\rZalim Dünya!”)

Zalim Dünya!

Düşey Sekme (\v)

Eğer \ işaretini ‘v’ harfiyle birlikte kullanırsak düşey sekme denen şeyi elde ederiz. Hemen bir örnek verelim:

>>> print(“düşey\vsekme”)

düşey

     sekme

Yalnız bu \v adlı kaçış dizisi her işletim sisteminde çalışmayabilir. Dolayısıyla, birden fazla platform üzerinde çalışmak üzere tasarladığınız programlarınızda bu kaçış dizisini kullanmanızı önermem.

Python Kaçış Dizileri Listesi

Kaçış DizisiAnlamı
\’Karakter dizisi içinde tek tırnak işaretini kullanabilmemizi sağlar.
\”Karakter dizisi içinde çift tırnak işaretini kullanabilmemizi sağlar.
\\Karakter dizisi içinde \ işaretini kullanabilmemizi sağlar.
\nYeni bir satıra geçmemizi sağlar.
\tKarakterler arasında sekme boşluğu bırakmamızı sağlar.
\uUNICODE kod konumlarını gösterebilmemizi sağlar.
\UUNICODE kod konumlarını gösterebilmemizi sağlar.
\NKarakterleri UNICODE adlarına göre kullanabilmemizi sağlar.
\xOnaltılı sistemdeki bir sayının karakter karşılığını gösterebilmemizi sağlar.
\aDestekleyen sistemlerde, kasa hoparlöründen bir ‘bip’ sesi verilmesini sağlar.
\rAynı satırın başına dönülmesini sağlar.
\vDestekleyen sistemlerde düşey sekme oluşturulmasını sağlar.
\bİmlecin sola doğru kaydırılmasını sağlar
\fYeni bir sayfaya geçilmesini sağlar.
rKarakter dizisi içinde kaçış dizilerini kullanabilmemizi sağlar.

Kaçış dizileriyle ilgili son olarak şunu söyleyebiliriz: Kaçış dizileri, görmezden gelebileceğiniz, ‘öğrenmesem de olur,’ diyebileceğiniz önemsiz birtakım işaretler değildir. Bu konu boyunca verdiğimiz örneklerden de gördüğünüz gibi, kaçış dizileri, kullanıcıya göstereceğiniz metinlerin biçimini doğrudan etkiliyor. Bütün bu örnekler, bu kaçış dizilerinin yersiz veya yanlış kullanılmasının ya da bunların bir metin içinde gözden kaçmasının, yazdığınız programların hata verip çökmesine, yani programınızın durmasına sebep olabileceğini de gösteriyor bize.

Sonraki Python derslerimizde görüşmek üzere.

Python Dersleri İçerik Listesi

Algoritma Soruları ve Çözümleri

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku