Python’da karakter dizilerini tanımlayabilmek için tek, çift veya üç tırnak işaretlerinden faydalandığımızı geçen bölümde öğrenmiştik. 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şıyor. Zira Python’ın gözünde bir başlangıç tırnağı ile bitiş tırnağı arasında yer alan her şey bir karakter dizisidir.
Örneğin ilk olarak bir “ işareti koyup ardından “elma şeklinde devam ettiğinizde, Python ilk tırnağı gördükten sonra karakter dizisini tanımlayabilmek için ikinci bir tırnak işareti aramaya başlar. Siz “elma” şeklinde kodunuzu tamamladığınızda ise Python bellekte “elma” adlı bir karakter dizisi oluşturur.
Bu noktada size şöyle bir soru sormama izin verin: Acaba tırnak işaretleri herhangi bir metin içinde kaç farklı amaçla kullanılabilir?
İsterseniz bu sorunun cevabını örnekler üzerinde vermeye çalışalım:
Ahmet, “Bugün sinemaya gidiyorum,” dedi.
Burada tırnak işaretlerini, bir başkasının sözlerini aktarmak için kullandık.
‘book’ kelimesi Türkçede ‘kitap’ anlamına gelir.
Burada ise tırnak işaretlerini bazı kelimeleri vurgulamak için kullandık.
Bir de şuna bakalım:
Yarın Adana’ya gidiyorum.
Burada da tırnak işaretini, çekim eki olan ‘-(y)a’ ile özel isim olan ‘Adana’ kelimesini birbirinden ayırmak için kesme işareti görevinde kullandık.
Şimdi yukarıda verdiğimiz ilk cümleyi bir karakter dizisi olarak tanımlamaya çalışalım:
Burada karakter dizisini tanımlamaya tek tırnak işareti ile başladık. Böylece Python bu karakter dizisini tanımlama işlemini bitirebilmek için ikinci bir tek tırnak işareti daha aramaya koyuldu ve aradığı tek tırnak işaretini cümlenin sonunda bularak, karakter dizisini düzgün bir şekilde oluşturabildi.
Dediğimiz gibi, Python’ın gözünde tırnak işaretleri bir karakter dizisini başka veri tiplerinden ayırt etmeye yarayan bir ölçüttür. Ama biz insanlar, yukarıda verdiğimiz örnek cümlelerden de göreceğiniz gibi, programlama dillerinden farklı olarak, tırnak işaretlerini bir metin içinde daha farklı amaçlar için de kullanabiliyoruz.
Şimdi yukarıdaki karakter dizisini şöyle tanımlamaya çalıştığımızı düşünün:
İşte burada Python’ın çıkarları ile bizim çıkarlarımız birbiriyle çatıştı. Python karakter dizisini başlatan ilk çift tırnak işaretini gördükten sonra, karakter dizisini tanımlama işlemini bitirebilmek için ikinci bir tırnak işareti daha aramaya koyuldu. Bu arayış sırasında da ‘Bugün’ kelimesinin başındaki çift tırnak işaretini gördü ve karakter dizisinin şu olduğunu zannetti:
Buraya kadar bir sorun yok. Bu karakter dizisi Python’ın sözdizimi kurallarına uygun.
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. Çünkü biz burada ‘Bugün’ kelimesinin baş tarafındaki çift tırnak işaretini karakter dizisi tanımlamak için değil, başkasının sözlerini aktarmak amacıyla kullandık. Ancak elbette bir programlama dili bizim amacımızın ne olduğunu kestiremez ve hata mesajını suratımıza yapıştırır:
Peki biz böyle bir durumda ne yapmalıyız?
Bu hatayı engellemek için karakter dizisini tanımlamaya çift tırnak yerine tek tırnakla ya da üç tırnakla başlayabiliriz:
… veya:
Böylece karakter dizisini başlatan işaret ‘Bugün sinemaya gidiyorum,’ cümlesinin başındaki ve sonundaki işaretlerden farklı olduğu için, Python okuma esnasında bu cümleye takılmaz ve doğru bir şekilde, karakter dizisini kapatan tırnak işaretini bulabilir.
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. Peki ama nasıl?
İşte burada ‘kaçış dizileri’ adı verilen birtakım araçlardan faydalanacağız.
Peki nedir bu ‘kaçış dizisi’ denen şey?
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.
Yukarıda verdiğimiz örneklerde, çift tırnakla gösterdiğimiz karakter dizilerinin içinde de çift tırnak işareti kullanabilmek için birkaç farklı yöntemden yararlanabildiğimizi öğrenmiştik. Buna göre, eğer bir karakter dizisi içinde çift tırnak işareti geçiyorsa, o karakter dizisini tek tırnakla; eğer tek tırnak geçiyorsa da o karakter dizisini çift tırnakla tanımlayarak bu sorunun üstesinden gelebiliyorduk. Ama daha önce de söylediğimiz gibi, ‘kaçış dizileri’ adı verilen birtakım araçları kullanarak, mesela içinde çift tırnak geçen karakter dizilerini yine çift tırnakla tanımlayabiliriz.
Dilerseniz, kaçış dizisi kavramını açıklamaya geçmeden önce bununla ilgili birkaç örnek verelim. Bu sayede ne ile karşı karşıya olduğumuz, zihnimizde biraz daha belirginleşebilir:
Bir örnek daha verelim:
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:
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.
Hatırlarsanız önceki sayfalarda şöyle bir karakter dizisi ile karşılaşmıştık:
Burada da ‘İstanbul’un’ kelimesi içinde geçen tırnak işareti nedeniyle karakter dizisini tek tırnak kullanarak tanımlayamıyorduk. Bu karakter dizisini hatasız bir şekilde tanımlayabilmek için ya çift tırnak ya da üç tırnak kullanmamız gerekiyordu:
… veya:
Tıpkı önceki örneklerde olduğu gibi, yukarıdaki karakter dizisini de aslında tek tırnakla tanımlayıp hata oluşmasını önleyebiliriz. Hemen görelim:
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:
Python bir karakter dizisi tanımladığımızda, karakter dizisini soldan sağa doğru okumaya başlar. Mesela yukarıdaki örnekte ilk olarak karakter dizisini tanımlamaya tek tırnakla başladığımızı görür.
Python karakter dizisini başlatan bu tek tırnak işaretini gördüğü zaman, soldan sağa doğru ilerleyerek karakter dizisini bitirecek olan tek tırnak işaretini aramaya başlar.
Soldan sağa doğru ilerlerken ‘İstanbul’un’ kelimesi içinde geçen kesme işaretini görür ve karakter dizisinin burada sona erdiğini düşünür. Ancak karakter dizisini sona erdiren işaret bu olmadığı için Python’ın hata vermekten başka çaresi kalmaz.
İşte biz ‘İstanbul’un’ kelimesi içinde geçen bu kesme işaretinin sol tarafına bir adet \ işareti yerleştirerek Python’a, ‘Aradığın işaret bu değil. Sen karakter dizisini okumaya devam et. Biraz sonra aradığın tırnağı bulacaksın!’ mesajı vermiş, yani orada tırnak işaretini farklı bir amaçla kullandığımız konusunda Python’ı bilgilendirmiş oluruz.
Şurada da aynı durum sözkonusu:
Tıpkı bir önceki örnekte olduğu gibi, burada da Python karakter dizisini soldan sağa doğru okumaya başlıyor, karakter dizisini başlatan çift tırnak işaretini görüyor ve bunun üzerine Python karakter dizisini bitirecek olan çift tırnak işaretini aramaya koyuluyor.
Karakter dizisini soldan sağa doğru okuduğu sırada, karakter dizisi içinde geçen ‘piton’ kelimesini görüyor. Eğer burada bir önlem almazsak Python bu kelimenin başındaki çift tırnak işaretini, karakter dizisini sona erdiren tırnak olarak algılar ve durum aslında böyle olmadığı için de hata verir.
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.
Tıpkı biraz önce yaptığımız gibi, bu tırnak işaretinin de soluna bir adet \ işareti yerleştirerek Python’a, ‘Aradığın tırnak bu da değil. Sen yine okumaya devam et!’ mesajı veriyoruz.
Bu mesajı alan Python karakter dizisini soldan sağa doğru okumaya devam ediyor ve sonunda karakter dizisini bitiren çift tırnak işaretini bularak bize hatasız bir çıktı veriyor.
Böylece \ işareti üzerinden hem kaçış dizilerinin ne olduğunu öğrenmiş, hem de bu kaçış dizisinin nasıl kullanılacağına dair örnekler vermiş olduk. Ancak \ kaçış dizisinin yetenekleri yukarıdakilerle sınırlı değildir. Bu kaçış dizisini, uzun karakter dizilerini bölmek için de kullanabiliriz. Şimdi şu örneği dikkatlice inceleyin:
Normal şartlar altında, bir karakter dizisini tanımlamaya tek veya çift tırnakla başlamışsak, karakter dizisinin kapanış tırnağını koymadan Enter tuşuna bastığımızda Python bize bir hata mesajı gösterir:
İşte \ kaçış dizisi bizim burada olası bir hatadan kaçmamızı sağlar. Eğer Enter tuşuna basmadan önce bu işareti kullanırsak Python tıpkı üç tırnak işaretlerinde şahit olduğumuz gibi, hata vermeden bir alt satıra geçecektir. Bu sırada, yani \ kaçış dizisini koyup Enter tuşuna bastığımızda >>> işaretinin … işaretine dönüştüğünü görüyorsunuz. Bu işaretin, Python’ın bize verdiği bir ‘Yazmaya devam et!’ mesajı olduğunu biliyorsunuz.
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. Aslında bu olguya yabancı değiliz. Önceki sayfalarda bu duruma bir örnek vermiştik. Hatırlarsanız fonksiyonunu anlatırken end parametresinin ön tanımlı değerinin \n, yani satır başı karakteri olduğunu söylemiştik.
Not
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:
Gördüğünüz gibi, \n adlı kaçış dizisi, bir alt satıra geçilmesini sağlıyor. İşte aslında \n kaçış dizisi de, \ ile ‘n’ harfinin birleşmesinden oluşmuş bir kaçış dizisidir. Burada \ işaretinin görevi, ‘n’ harfinin özel bir anlam kazanmasını sağlamaktır. \ işareti ile ‘n’ harfi birleştiğinde ‘satır başı karakteri’ denen özel bir karakter dizisi ortaya çıkarıyor.
Gelin bu kaçış dizisi ile ilgili bir örnek verelim. Şimdi şu kodları dikkatlice inceleyin:
Burada, başlık adlı değişkenin tuttuğu “Türkiye’de Özgür Yazılımın Geçmişi” adlı karakter dizisinin altını çizdik. Dikkat ederseniz, başlığın altına koyduğumuz çizgiler başlığın uzunluğunu aşmıyor. Yazdığımız program, başlığın uzunluğu kadar çizgiyi başlığın altına ekliyor. Bu programda başlık ne olursa olsun, programımız çizgi uzunluğunu kendisi ayarlayacaktır. Örneğin:
Gelin isterseniz bu kodlardaki satırını şöyle bir inceleyelim. Kodumuz şu:
Burada öncelikle başlık adlı değişkeni fonksiyonunun parantezleri içine yazdık. Böylece başlık değişkeninin değeri ekrana yazdırılacak.
fonksiyonunun ikinci parametresinin \n adlı kaçış dizisi olduğunu görüyoruz. Bu kaçış dizisini eklememiz sayesinde Python ilk parametreyi çıktı olarak verdikten sonra bir alt satıra geçiyor. Bu parametrenin tam olarak ne işe yaradığını anlamak için, yukarıdaki satırı bir de o parametre olmadan çalıştırmayı deneyebilirsiniz:
fonksiyonunun üçüncü parametresinin ise şu olduğunu görüyoruz: .
İşte başlık değişkeninin altına gerekli sayıda çizgiyi çizen kodlar bunlardır. Burada fonksiyonunu nasıl kullandığımıza çok dikkat edin. Bu kod sayesinde başlık değişkeninin uzunluğu () sayısınca - işaretini ekrana çıktı olarak verebiliyoruz.
Yukarıdaki kodlarda fonksiyonunun son parametresi ise sep=’’. Peki bu ne işe yarıyor? Her zaman olduğu gibi, bu kod parçasının ne işe yaradığını anlamak için programı bir de o kodlar olmadan çalıştırmayı deneyebilirsiniz:
Gördüğünüz gibi, başlık değişkeninin tam altına gelmesi gereken çizgi işaretleri sağa kaymış. Bunun nedeni sep parametresinin öntanımlı değerinin bir adet boşluk karakteri olmasıdır. sep parametresinin öntanımlı değeri nedeniyle çizgilerin baş tarafına bir adet boşluk karakteri ekleniyor çıktıda. O yüzden bu çizgiler sağa kaymış görünüyor. İşte biz yukarıdaki kodlarda sep parametresinin öntanımlı değerini değiştirip, boşluk karakteri yerine boş bir karakter dizisi yerleştiriyoruz. Böylece çizgiler çıktıda sağa kaymıyor.
Satır başı karakteri, programlama maceramız sırasında en çok kullanacağımız kaçış dizilerinden biri ve hatta belki de birincisidir. O yüzden bu kaçış dizisini çok iyi öğrenmenizi tavsiye ederim.
Ayrıca bu kaçış dizisini (ve tabii öteki kaçış dizilerini) tanıyıp öğrenmeniz, yazacağınız programların selameti açısından da büyük önem taşır. Eğer bir karakter dizisi içinde geçen kaçış dizilerini ayırt edemezseniz Python size hiç beklemediğiniz çıktılar verebilir. Hatta yazdığınız programlar kaçış dizilerini tanımıyor olmanızdan ötürü bir anda hata verip çökebilir. Peki ama nasıl?
Şimdi şu örneğe dikkatlice bakın:
Diyelim ki bilgisayarınızın ‘C:\’ dizinindeki ‘nisan’ adlı bir klasörün içinde yer alan seafoodplus.info adlı bir dosyayı yazdığınız bir program içinde kullanmanız gerekiyor. Mesela bu dosyayı, tam adresiyle birlikte kullanıcılarınıza göstermek istiyorsunuz.
İlk denememizi yapalım:
Buradan şöyle bir çıktı aldık:
Gördüğünüz gibi, bu çıktıyı normal yollardan vermeye çalıştığımızda Python bize hiç de beklemediğimiz bir çıktı veriyor. Peki ama neden?
Python’da karakter dizileri ile çalışırken asla aklımızdan çıkarmamamız gereken bir şey var: Eğer yazdığımız herhangi bir karakter dizisinin herhangi bir yerinde \ işaretini kullanmışsak, bu işaretten hemen sonra gelen karakterin ne olduğuna çok dikkat etmemiz gerekir. Çünkü eğer dikkat etmezsek, farkında olmadan Python için özel anlam taşıyan bir karakter dizisi oluşturmuş olabiliriz. Bu da kodlarımızın beklediğimiz gibi çalışmasını engeller.
Yukarıdaki sorunun kaynağını anlamak için adlı karakter dizisine çok dikkatlice bakın. Python bu karakter dizisinde bizim ‘\nisan’ olarak belirttiğimiz kısmın başındaki \n karakterlerini bir kaçış dizisi olarak algıladı. Çünkü \n adlı karakter dizisi, ‘satır başı kaçış dizisi’ adını verdiğimiz, Python açısından özel anlam taşıyan bir karakter dizisine işaret ediyor. Zaten yukarıdaki tuhaf görünen çıktıya baktığınızda da, bu kaçış dizisinin olduğu noktadan itibaren karakter dizisinin bölünüp yeni bir satıra geçildiğini göreceksiniz. İşte biz yukarıdaki örnekte alelade bir dizin adı belirttiğimizi zannederken aslında hiç farkında olmadan bir kaçış dizisi üretmiş oluyoruz. Bu nedenle, daha önce de söylediğimiz gibi, karakter dizileri içinde farkında olarak veya olmayarak kullandığımız kaçış dizilerine karşı her zaman uyanık olmalıyız. Aksi takdirde, yukarıda olduğu gibi hiç beklemediğimiz çıktılarla karşılaşabiliriz.
Esasen yukarıdaki problem bir dereceye kadar (ve yerine göre) ‘masum bir kusur’ olarak görülebilir. Çünkü bu hata programımızın çökmesine yol açmıyor. Ama bir karakter dizisi içindeki gizli kaçış dizilerini gözden kaçırmak, bazı durumlarda çok daha yıkıcı sonuçlara yol açabilir. Mesela yukarıdaki sorunlu dizin adını ekrana yazdırmak yerine fonksiyonunu kullanarak, bu karakter dizisi içinde belirttiğimiz seafoodplus.info adlı dosyayı açmaya çalıştığımızı düşünün:
Eğer sorunun gözden kaçan bir kaçış dizisinden kaynaklandığını farkedemezseniz, bu sorunu çözebilmek için saatlerinizi ve hatta günlerinizi harcamak zorunda kalabilirsiniz. Çünkü yukarıdaki hata mesajı sorunun nedenine dair hiçbir şey söylemiyor. Ancak ve ancak yukarıdaki karakter dizisi içinde sinsice gizlenen bir \n kaçış dizisi olduğu gözünüze çarparsa bu sorunu çözme yolunda bir adım atabilirsiniz.
Diyelim ki sorunun ‘\nisan’ ifadesinin başındaki \n karakterlerinin Python tarafından bir kaçış dizisi olarak algılanmasından kaynaklandığını farkettiniz. Peki bu sorunu nasıl çözeceksiniz?
Bu sorunun birkaç farklı çözüm yolu var. Biz şimdilik sadece ikisini göreceğiz. Bu bölümün sonuna vardığınızda öteki çözüm yolunu da öğrenmiş olacaksınız.
Yukarıdaki problemi, ilgili kaçış dizisi içindeki ters taksim işaretini çiftleyerek çözebilirsiniz:
Tabii tutarlılık açısından karakter dizisi içindeki bütün ters taksim işaretlerini çiftlemek mantıklı olacaktır:
Bunun dışında, bu örnek için, dizin adlarını ters taksim yerine düz taksim işaretiyle ayırmayı tercih edebilirsiniz:
Dediğimiz gibi, üçüncü (ve aslında daha kullanışlı olan) yöntemi biraz sonra inceleyeceğiz. Biz şimdilik kaçış dizilerini anlatmaya devam edelim.
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:
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:
Bir örnek daha:
Gördüğünüz gibi, parametreler arasında belli aralıkta bir boşluk bırakmak istediğimizde \t adlı kaçış dizisinden yararlanabiliyoruz.
Tıpkı \n kaçış dizisinde olduğu gibi, karakter dizilerinde \t kaçış dizisinin varlığına karşı da uyanık olmalıyız:
Burada da \n ile yaşadığımız soruna benzer bir durum var. Biz toplam_seafoodplus.info adlı bir dosyaya atıfta bulunmaya çalışıyoruz, ama Python bu ifadenin başındaki ‘t’ harfinin, kendisinden önce gelen \ işareti ile birleşmesinden ötürü, bunu \t kaçış dizisi olarak algılıyor ve ona göre davranıyor.
Belki yukarıdaki kodları şöyle yazarsak durumu anlamak daha kolay olabilir:
Gördüğünüz gibi, Python \n kaçış dizisini gördüğü noktada alt satırın başına geçiyor ve \t kaçış dizisini gördüğü noktada da önceki ve sonraki öğeler arasında bir sekme boşluğu bırakıyor. Bu durumu engellemek için ne yapmanız gerektiğini biliyorsunuz: Ya ters taksim işaretlerini çiftleyeceksiniz:
Ya da dizin adı ayracı olarak düz taksim işaretini kullanacaksınız:
Daha önce de söylediğimiz gibi, üçüncü ve daha pratik olan yolu biraz sonra göreceğiz. Şimdilik sadece biraz sabır…
\ 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:
İsterseniz yukarıdaki komutu şu şekilde yazarak, kafa şişirme katsayısını artırabilirsiniz:
Bu şekilde !bip! sesi 10 kez tekrar edilecektir. Ancak bu kaçış dizisi çoğunlukla sadece Windows üzerinde çalışacaktır. Bu kaçış dizisinin GNU/Linux üzerinde çalışma garantisi yoktur. Hatta bu kaçış dizisi bütün Windows sistemlerinde dahi çalışmayabilir. Dolayısıyla bu kaçış dizisinin işlevine bel bağlamak pek mantıklı bir iş değildir.
Tıpkı \n ve \t kaçış dizilerinde olduğu gibi bu kaçış dizisinin varlığına karşı da uyanık olmalıyız. Burada da mesela ‘C:\aylar’ gibi bir dizin adı tanımlamaya çalışırken aslında \a kaçış dizisini oluşturuyor olabilirsiniz farkında olmadan.
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:
Burada olan şey şu: Normal şartlar altında, fonksiyonu içine yazdığımız bir karakter dizisindeki bütün karakterler soldan sağa doğru tek tek ekrana yazdırılır:
Ancak eğer karakter dizisinin herhangi bir yerine \r adlı kaçış dizisini yerleştirirsek, bu kaçış dizisinin bulunduğu konumdan itibaren aynı satırın başına dönülecek ve \r kaçış dizisinden sonra gelen bütün karakterler satır başındaki karakterlerin üzerine yazacaktır. Şu örnek daha açıklayıcı olabilir:
Burada, “Merhaba” karakter dizisi ekrana yazdırıldıktan sonra \r kaçış dizisinin etkisiyle satır başına dönülüyor ve bu kaçış dizisinden sonra gelen “Dünya” karakter dizisi “Merhaba” karakter dizisinin üzerine yazıyor. Tabii “Dünya” karakter dizisi içinde 5 karakter, “Merhaba” karakter dizisi içinde ise 7 karakter olduğu için, “Merhaba” karakter dizisinin son iki karakteri (“ba”) dışarda kalıyor. Böylece ortaya “Dünyaba” gibi bir şey çıkıyor.
Önceki kaçış dizilerinde olduğu gibi, bu kaçış dizisini de farkında olmadan karakter dizisi içinde kullanırsanız beklemediğiniz çıktılar alırsınız:
Burada farkında olmadan sadece bir değil, üç kaçış dizisi birden oluşturduk!
Eğer \ işaretini ‘v’ harfiyle birlikte kullanırsak düşey sekme denen şeyi elde ederiz. Hemen bir örnek verelim:
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.
\ kaçış dizisinin, biraraya geldiğinde özel bir anlam kazandığı bir başka harf de b’dir. \b kaçış dizisinin görevi, imleci o anki konumundan sola kaydırmaktır. Bu tanım pek anlaşılır değil. O yüzden bir örnek verelim:
Bu kodu çalıştırdığınızda herhangi bir değişiklik görmeyeceksiniz. Ama aslında en sonda gördüğümüz \b kaçış dizisi, imleci bir karakter sola kaydırdı. Dikkatlice bakın:
Gördüğünüz gibi, \b kaçış dizisinin etkisiyle imleç bir karakter sola kaydığı için, ‘com’ kelimesinin son harfi silindi ve bunun yerine \b kaçış dizisinden sonra gelen .uk karakterleri yerleştirildi. Dolayısıyla biz de şu çıktıyı aldık:
Bir örnek daha verelim…
Bildiğiniz gibi, fonksiyonu, kendisine verilen parametreler arasına birer boşluk yerleştirir:
Biz bu öğeleri birbirine bitiştirmek için şöyle bir yol izleyebileceğimizi biliyoruz:
İşte aynı etkiyi \b kaçış dizisini kullanarak da elde edebiliriz:
Gördüğünüz gibi, \b kaçış dizisi, ‘.’ ve ‘com’ parametrelerinden önce imleci birer karakter sola kaydırdığı için, parametreler arasındaki boşluk karakterleri ortadan kalktı.
Bu kaçış dizisini kullanarak şöyle gereksiz işler peşinde de koşabilirsiniz:
Burada \b kaçış dizisini üst üste birkaç kez kullanarak imleci birkaç karakter sola kaydırdık ve ‘sn’ harflerini ‘hz’ harflerinin üzerine bindirdik. Böylece ‘istihza’ kelimesi ‘istisna’ kelimesine dönüşmüş oldu…
Daha fazla uzatmadan, bu kaçış dizisinin Python’da çok nadir kullanıldığı bilgisini vererek yolumuza devam edelim…
Tıpkı bundan önceki kaçış dizileri gibi, karakter dizileri içindeki varlığı konusunda dikkatli olmamız gereken bir başka kaçış dizisi de \u adlı kaçış dizisidir. Eğer bu kaçış dizisini tanımaz ve dikkatli kullanmazsak, yazdığımız programlar tespit etmesi çok güç hatalar üretebilir.
Örneğin şöyle bir çıktı vermek istediğinizi düşünün:
Dosya konumu: C:\users\zeynep\gizli\seafoodplus.info
Bu çıktıyı normal yollardan vermeye çalışırsak Python bize bir hata mesajı gösterecektir:
Belki sağda solda ‘UNICODE’ diye bir şey duymuşsunuzdur. Eğer şimdiye kadar böyle bir şey duymadıysanız veya duyduysanız bile ne olduğunu bilmiyorsanız hiç ziyanı yok. Birkaç bölüm sonra bunun ne anlama geldiğini bütün ayrıntılarıyla anlatacağız. Biz şimdilik sadece şunu bilelim: UNICODE, karakterlerin, harflerin, sayıların ve bilgisayar ekranında gördüğümüz öteki bütün işaretlerin her biri için tek ve benzersiz bir numaranın tanımlandığı bir sistemdir. Bu sistemde, ‘kod konumu’ (code point) adı verilen bu numaralar özel bir şekilde gösterilir. Örneğin ‘ı’ harfi UNICODE sisteminde şu şekilde temsil edilir:
Aynı şekilde ‘a’ harfi bu sistemde şu kod konumu ile gösterilir:
Python programlama dilinde ise, yukarıdaki kod konumu düzeni şöyle gösterilir:
Gördüğünüz gibi, Python UNICODE sistemindeki her bir kod konumunu gösterebilmek için, önce \u şeklinde bir kaçış dizisi tanımlıyor, ardından UNICODE sisteminde + işaretinden sonra gelen sayıyı bu kaçış dizisinin hemen sağına ekliyor. Gelin kendi kendimize birkaç deneme çalışması yapalım:
Gördüğünüz gibi, eğer \u kaçış dizisinden sonra doğru bir kod konumu belirtmezsek Python bize bir hata mesajı gösteriyor…
Bu hata mesajının, biraz önce kodunu yazdıktan sonra aldığımız hata ile aynı olduğuna dikkat edin. Tıpkı \ufdsf örneğinde olduğu gibi, \users ifadesi de varolan bir UNICODE kod konumuna karşılık gelmediği için, Python’ın hata vermekten başka çaresi kalmıyor.
Biz bu örnekte ‘users’ kelimesini kullanmaya çalışıyoruz, ama ‘u’ harfinden hemen önce gelen \ kaçış dizisi nedeniyle, hiç farkında olmadan Python açısından önemli bir karakter dizisi (\u) meydana getirmiş oluyoruz. O yüzden, böyle can sıkıcı hatalarla karşılaşmamak için olası kaçış dizilerine karşı her zaman uyanık olmamız gerekiyor.
Peki biz bu kaçış dizisi yüzünden, yazdığımız programlarda Dosya konumu: C:\users\zeynep\gizli\seafoodplus.info”) gibi bir çıktı veremeyecek miyiz?
Verebileceğimizi ve bunun bir yolu yordamı olduğunu biliyorsunuz:
Gördüğünüz gibi, karakter dizisi içinde geçen bütün \ işaretlerini çiftleyerek sorunumuzu çözdük. Buradaki gibi bir sorunla karşılaşmamak için, dizin adlarını ayırırken ters taksim işareti yerine düz taksim işaretini kullanmayı da tercih edebilirsiniz:
Biraz sonra bu sorunu halletmenin üçüncü ve daha kolay bir yönteminden daha söz edeceğiz. Ama biz şimdilik bu kaçış dizisini bir kenara bırakıp başka bir kaçış dizisini incelemeye geçelim.
Bu kaçış dizisi biraz önce gördüğümüz \u adlı kaçış dizisiyle hemen hemen aynı anlama gelir. Bu kaçış dizisi de, tıpkı \u gibi, UNICODE kod konumlarını temsil etmek için kullanılır. Ancak U ile gösterilen kod konumları u ile gösterilenlere göre biraz daha uzundur. Örneğin, hatırlarsanız u kaçış dizisini kullanarak ‘ı’ harfinin UNICODE kod konumunu şöyle temsil ediyorduk:
Eğer aynı kod konumunu U adlı kaçış dizisi ile göstermek istersek şöyle bir şey yazmamız gerekir:
Gördüğünüz gibi, burada \U kaçış dizisinden sonra gelen kısım toplam 8 haneli bir sayıdan oluşuyor. u kaçış dizisinde ise bu kısmı toplam 4 haneli bir sayı olarak yazıyorduk. İşte \u kaçış dizisi ile U kaçış dizisi arasındaki fark budur. u kaçış dizisi hakkında söylediğimiz öteki her şey U kaçış dizisi için de geçerlidir.
UNICODE sistemi ile ilgili bir başka kaçış dizisi de \N adlı kaçış dizisidir.
Dediğimiz gibi, UNICODE sistemine ilişkin ayrıntılardan ilerleyen derslerde söz edeceğiz, ama bu sistemle ilgili ufak bir bilgi daha verelim.
UNICODE sisteminde her karakterin tek ve benzersiz bir kod konumu olduğu gibi, tek ve benzersiz bir de uzun adı vardır. Örneğin ‘a’ harfinin UNICODE sistemindeki uzun adı şudur:
Bir karakterin UNICODE sistemindeki uzun adını öğrenmek için unicodedata adlı bir modülden yararlanabilirsiniz:
Bu arada, daha önce de söylediğimiz gibi, bu ‘modül’ kavramına şimdilik takılmayın. İlerde modülleri ayrıntılı olarak inceleyeceğiz. Şimdilik unicodedata denen şeyin, (tıpkı daha önce örneklerini gördüğümüz os, sys ve keyword gibi) bir modül olduğunu ve bu modül içindeki name adlı bir fonksiyonu kullanarak, parantez içinde belirttiğimiz herhangi bir karakterin UNICODE sistemindeki uzun adını elde edebileceğimizi bilelim yeter.
İşte \N kaçış dizisi bu uzun isimleri, Python programlarımızda kullanma imkanı verir bize. Bu kaçış dizisini, karakterlerin UNICODE sistemindeki uzun adları ile birlikte kullanarak asıl karakterleri elde edebiliriz. Dikkatlice bakın:
Gördüğünüz gibi, herhangi bir karşılığı olmayan bir uzun ad belirttiğimizde Python bize bir hata mesajı gösteriyor. Çünkü Python \N kaçış dizisinin hemen ardından { işaretinin getirilmesini ve sonra da UNICODE sistemi dahilinde geçerli bir uzun ad belirtilmesini bekliyor. Yukarıdaki örnekte \N kaçış dizisinden sonra { işareti yok. Zaten \N kaçış dizisinin hemen ardından gelen ‘isan’ ifadesi de doğru bir uzun ada işaret etmiyor. Dolayısıyla da Python’ın bize hata mesajı göstermekten başka çaresi kalmıyor…
\u, \U ve \N kaçış dizileri, UNICODE sistemi ile ilgili çalışmalar yapmak isteyen programcılar için Python programlama dilinin sunduğu faydalı araçlardan yalnızca birkaçıdır. Ancak bu araçların sizin işinize yaramayacağını asla düşünmeyin. Zira \u, \U ve \N kaçış dizileri ile ilgili yukarıdaki durum hiç beklemediğiniz bir anda sizi de vurabilir. Çünkü bu kaçış dizilerinin oluşturduğu risk hiç de öyle nadir karşılaşılacak bir sorun değildir.
Bildiğiniz gibi Windows 7’de kullanıcının dosyalarını içeren dizin adı C:\Users\kullanıcı_adı şeklinde gösteriliyor. Dolayısıyla Windows kullananlar UNICODE kaçış dizilerinden kaynaklanan bu tuzağa her an düşebilir. Ya da eğer adınız ‘u’ veya ‘n’ harfi ile başlıyorsa yine bu tuzağa düşme ihtimaliniz epey yüksek olacak, C:\Users\umut veya C:\Users\Nihat gibi bir dizin adı belirtirken çok dikkatli olmanız gerekecektir. Zira özellikle dosyalar üzerinde işlem yaparken, bu tür dizin adlarını sık sık kullanmak durumunda kalacaksınız. Bu yüzden, alelade bir kelime yazdığınızı zannederken hiç farkında olmadan bir kaçış dizisi tanımlıyor olma ihtimalini her zaman göz önünde bulundurmalı ve buna uygun önlemleri almış olmalısınız.
‘x’ harfi de \ işareti ile birleştiğinde özel anlam kazanarak bir kaçış dizisi meydana getirir.
\x kaçış dizisini kullanarak, onaltılı (hexadecimal) sayma sistemindeki bir sayının karakter karşılığını gösterebilirsiniz. Dikkatlice bakın:
Onaltılı sayma sistemindeki 41 sayısı ‘A’ harfine karşılık gelir. Eğer hangi karakterlerin hangi sayılara karşılık geldiğini merak ediyorsanız seafoodplus.info adresindeki tabloyu inceleyebilirsiniz. Bu tabloda ‘hex’ sütunu altında gösterilen sayılar onaltılı sayılar olup, ‘symbol’ sütununda gösterilen karakterlere karşılık gelirler. Örneğin ‘hex’ sütunundaki 4E sayısı ‘symbol’ sütunundaki ‘N’ harfine karşılık gelir. Bu durumu Python’la da teyit edebilirsiniz:
Eğer sayılarla karakterler arasındaki bağlantının tam olarak ne olduğunu bilmiyorsanız hiç endişe etmeyin. Birkaç bölüm sonra sayılarla karakterler arasında nasıl bir bağ olduğunu gayet ayrıntılı bir şekilde anlatacağız. Biz şimdilik yalnızca \x karakter dizisinin özel bir kaçış dizisine karşılık geldiğini ve bu kaçış dizisini karakter dizileri içinde kullanırken dikkatli olmamız gerektiğini bilelim yeter:
Gördüğünüz gibi, Python \x ifadesinden sonra onaltılı bir sayı belirtmenizi bekliyor. Halbuki biz burada \x ifadesini ‘xp_dosyaları’ adlı dizini gösterebilmek için kullanmıştık. Ama görünüşe göre yanlışlıkla Python için özel bir anlam ifade eden bir karakter dizisi oluşturmuşuz…
Dediğimiz gibi, Python’daki en temel kaçış dizisi \ işaretidir. Bu işaret bazı başka harflerle birleşerek yeni kaçış dizileri de oluşturabilir.
Python’da \ işaretinin dışında temel bir kaçış dizisi daha bulunur. Bu kaçış dizisi ‘r’ harfidir. Şimdi bu kaçış dizisinin nasıl kullanılacağını ve ne işe yaradığını inceleyelim:
Şöyle bir çıktı vermek istediğimizi düşünün:
Bildiğimiz yoldan bu çıktıyı vermeye çalışırsak neler olacağını adınız gibi biliyorsunuz:
Not
Eğer Windows üzerinde çalışıyorsanız bu komutu verdikten sonra bir !bip! sesi de duymuş olabilirsiniz…
Python tabii ki, karakter dizisi içinde geçen ‘\aylar’, ‘\nisan’, ve ‘\toplam masraf’ ifadelerinin ilk karakterlerini yanlış anladı! \a, \n ve \t gibi ifadeler Python’ın gözünde birer kaçış dizisi. Dolayısıyla Python \a karakterlerini görünce bir !bip! sesi çıkarıyor, \n karakterlerini görünce satır başına geçiyor ve \t karakterlerini görünce de Tab tuşuna basılmış gibi bir tepki veriyor. Sonuç olarak da yukarıdaki gibi bir çıktı üretiyor.
Daha önce bu durumu şöyle bir kod yazarak engellemiştik:
Burada, \ işaretlerinin her birini çiftleyerek sorunun üstesinden geldik. Yukarıdaki yöntem doğru ve kabul görmüş bir çözümdür. Ama bu sorunun üstesinden gelmenin çok daha basit ve pratik bir yolu var. Bakalım:
Gördüğünüz gibi, karakter dizisinin baş kısmının dış tarafına bir adet r harfi yerleştirerek sorunun üstesinden geliyoruz. Bu kaçış dizisinin, kullanım açısından öteki kaçış dizilerinden farklı olduğuna dikkat edin. Öteki kaçış dizileri karakter dizisinin içinde yer alırken, bu kaçış dizisi karakter dizisinin dışına yerleştiriliyor.
Bu kaçış dizisinin tam olarak nasıl işlediğini görmek için dilerseniz bir örnek daha verelim:
Burada da Python bizim yapmak istediğimiz şeyi anlayamadı ve karakter dizisi içinde geçen kaçış dizilerini doğrudan ekrana yazdırmak yerine bu kaçış dizilerinin işlevlerini yerine getirmesine izin verdi. Tıpkı biraz önceki örnekte olduğu gibi, istersek kaçış dizilerini çiftleyerek bu sorunu aşabiliriz:
Ama tabii ki bunun çok daha kolay bir yöntemi olduğunu biliyorsunuz:
Gördüğünüz gibi, karakter dizisinin başına getirdiğimiz r kaçış dizisi, karakter dizisi içinde geçen kaçış dizilerinin işlevlerini yerine getirmesine engel olarak, istediğimiz çıktıyı elde etmemizi sağlıyor.
Bu arada bu kaçış dizisini, daha önce öğrendiğimiz \r adlı kaçış dizisi ile karıştırmamaya dikkat ediyoruz.
Python’daki bütün kaçış dizilerinden söz ettiğimize göre, konuyu kapatmadan önce önemli bir ayrıntıdan söz edelim.
Python’da karakter dizilerinin sonunda sadece çift sayıda \ işareti bulunabilir. Tek sayıda \ işareti kullanıldığında karakter dizisini bitiren tırnak işareti etkisizleşeceği için çakışma sorunu ortaya çıkar. Bu etkisizleşmeyi, karakter dizisinin başına koyduğunuz ‘r’ kaçış dizisi de engelleyemez. Yani:
Bu şekilde bir tanımlama yaptığımızda Python bize bir hata mesajı gösterir. Çünkü kapanış tırnağının hemen öncesine yerleştirdiğimiz \ kaçış dizisi, Python’ın karakter dizisini kapatan tırnak işaretini görmezden gelmesine yol açarak bu tırnağı etkisizleştiriyor. Böylece sanki karakter dizisini tanımlarken kapanış tırnağını hiç yazmamışız gibi bir sonuç ortaya çıkıyor:
Üstelik bu durumu, r adlı kaçış dizisi de engelleyemiyor:
Çözüm olarak birkaç farklı yöntemden yararlanabilirsiniz. Mesela karakter dizisini kapatmadan önce karakter dizisinin sonundaki \ işaretinin sağına bir adet boşluk karakteri yerleştirmeyi deneyebilirsiniz:
Veya kaçış dizisini çiftleyebilirsiniz:
Ya da karakter dizisi birleştirme yöntemlerinden herhangi birini kullanabilirsiniz:
Böyle bir durumla ilk kez karşılaştığınızda bunun Python programlama dilinden kaynaklanan bir hata olduğunu düşünebilirsiniz, ancak bu durum Python’ın resmi internet sitesinde ‘Sıkça Sorulan Sorular’ bölümüne alınacak kadar önemli bir tasarım tercihidir: seafoodplus.info#why-can-t-raw-strings-r-strings-end-with-a-backslash
\f artık günümüzde pek kullanılmayan bir kaçış dizisidir. Bu kaçış dizisinin görevi, özellikle eski yazıcılarda, bir sayfanın sona erip yeni bir sayfanın başladığını göstermektir. Dolayısıyla eski model yazıcılar, bu karakteri gördükleri noktada mevcut sayfayı sona erdirip yeni bir sayfaya geçer.
Bu kaçış dizisinin tam olarak ne işe yaradığını test etmek için şu kodları çalıştırın:
Şimdi bu kodlarla oluşturduğunuz seafoodplus.info adlı dosyayı LibreOffice veya Microsoft Word gibi bir programla açın. ‘deneme’ satırlarının iki farklı sayfaya yazdırıldığını göreceksiniz. Bu arada, eğer Microsoft Word dosyayı açarken bir hata mesajı gösterirse, o hata mesajına birkaç kez ‘tamam’ diyerek hata penceresini kapatın. Dosya normal bir şekilde açılacaktır.
Dediğimiz gibi, bu kaçış dizisi artık pek kullanılmıyor. Ama yine de bu kaçış dizisine karşı da uyanık olmalısınız. Çünkü bu kaçış dizisi de beklemediğiniz çıktılar almanıza yol açabilir. Mesela şu örneğe bir bakalım:
Gördüğünüz gibi, siz aslında ‘\fırat’ yazmak isterken, Python bu kelimenin baş tarafındaki \f karakter dizisini bir kaçış dizisi olarak değerlendirip ona göre bir çıktı verdi.
Bütün bu anlattıklarımızın ardından, kaçış dizilerinin, birleştirildikleri karakterlerin farklı bir anlam yüklenmesini sağlayan birtakım işaretler olduğunu anlıyoruz. Örneğin \ işareti ‘ (tek tırnak) işareti ile bir araya gelerek, tek tırnak işaretinin karakter dizisi tanımlama dışında başka bir anlam yüklenmesini sağlıyor. Aynı şekilde yine \ işareti “ (çift tırnak) işareti ile birleşerek çift tırnak işaretinin de karakter dizisi tanımlama dışında bir anlama kavuşmasını sağlıyor. Böylece tırnak işaretlerini karakter dizileri içinde rahatlıkla kullanabiliyoruz.
Ya da yine \ işareti ‘n’ harfi ile bir araya gelip, bu harfin satır başına geçilmesini sağlayan bir kaçış dizisi oluşturmasını mümkün kılıyor. Veya aynı işaret ‘t’ harfiyle birleşip, öğeler arasında sekme oluşturulmasını sağlayabiliyor. Bu araçlar sayesinde ekrana yazdırdığımız bir metnin akışını kontrol etme imkanına kavuşuyoruz.
Biraz sonra bu önemli konuyu kapatacağız. Ama dilerseniz kapatmadan önce, bu bölümde öğrendiğimiz kaçış dizilerini şöyle bir topluca görelim:
Kaçış Dizisi | Anlamı |
---|---|
\’ | 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. |
\n | Yeni bir satıra geçmemizi sağlar. |
\t | Karakterler arasında sekme boşluğu bırakmamızı sağlar. |
\u | UNICODE kod konumlarını gösterebilmemizi sağlar. |
\U | UNICODE kod konumlarını gösterebilmemizi sağlar. |
\N | Karakterleri UNICODE adlarına göre kullanabilmemizi sağlar. |
\x | Onaltılı sistemdeki bir sayının karakter karşılığını gösterebilmemizi sağlar. |
\a | Destekleyen sistemlerde, kasa hoparlöründen bir ‘bip’ sesi verilmesini sağlar. |
\r | Aynı satırın başına dönülmesini sağlar. |
\v | Destekleyen sistemlerde düşey sekme oluşturulmasını sağlar. |
\b | İmlecin sola doğru kaydırılmasını sağlar |
\f | Yeni bir sayfaya geçilmesini sağlar. |
r | Karakter 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.
Böylece bir bölümü daha bitirmiş olduk. Artık Python’la ‘gerçek’ programlar yazmamızın önünde hiçbir engel kalmadı.
Aşağıdaki butona basarak bu yazımı bilgisayarın hafızasına alabilirsiniz. Sonra istediğiniz yerde Ctrl+V tuşlarına basarak bu ifadeyi yapıştırabilirsiniz.
Mobil telefonda ise metnin belli bir yerine basılı tuttuğunuzda "yapıştır" seçeneği zaten çıkacaktır.
Ctrl+V için boşluk tuşunun üç yanındaki Ctrl tuşuna basılı tutmanız ve aynı anda V'ye basmanız yeterlidir.
“
Hafızaya Al
var copyTextareaBtn = seafoodplus.infoelector('.js-textareacopybtn'); seafoodplus.infontListener('click', function(event) { var copyTextarea = seafoodplus.infoelector('.js-copytextarea'); seafoodplus.info(); try { var successful = seafoodplus.infommand('copy'); var msg = successful ? 'successful' : 'unsuccessful'; seafoodplus.info('Copying text command was ' + msg); } catch (err) { seafoodplus.info('Oops, unable to copy'); } });
Romen Rakamıyla Nasıl Yazılır - MMXVIIIHiç de Nasıl YazılırÖnsöz Kelimesi Nasıl YazılırKun Feyekun Nasıl YazılırBirde Nasıl Yazılır Web: seafoodplus.info
Klavyde kesme iareti nasl yaplr? Bu yazda bu sorunun yantna bakyoruz. Ayrma iareti ya da trnak iareti olarak da bilinen kesme iareti (') bilgisayar klavyesinde kolaylkla yaplabiliyor. Türkçe'de kullanm yaygn noktalama iaretlerinden biri olan kesme/ayrma iareti, özel isimlere eklenen ekleri ayrmak için kullanlr.
Doru bir yaz dili için ayrma iareti, kullanm önemlidir. Özel isimlere gelen ekleri ayrmak için kullanlan bu iaret ile ekler arasnda boluk braklmaz. Kesme ve trnak iareti olarak bilinen ayrma iareti, farkl dillerde kullanlr.
Franszca, ngilizce ve Almanca gibi farkl dillerde de trnak iareti görülür. Her dilin yaps farkl olduu için ayrma iaretlerinin kullanma ve kurallar farkldr. Ayrca, ayrma iaretinin ifade ettii anlam dil yapsna göre deiiklik gösterebilir.
Türkçe'de kullanm yaygn kesme iareti, apostrof ve kesme imi olarak da bilinir. Farkl biçimlerde ifade edilen ayrma iaretinin, dilbilgisi kurallarnda farkl görevleri bulunur.
Apostrof iaretinin en belirgin ilevi, özel isimlere gelen ekleri ayrmasdr. Say, harf ve ksaltmalara gelen eklerin ayrmak için kesme iareti kullanlr. Ayrca, belirli bir tarih bildiren ay ve gün isimlerinde gelen ekler, kesme iareti ile ayrlarak yazlr.
ngilizcede kesme iareti, zamir ve isimlerin yüklem ile birletii durumlarda ksaltma yapmak için kullanlr. Ksaltma anlam katan bu iaret, yaz dilinde sklkla kullanlr. Ofis dosyalarnda farkl dillerde metinler olutururken farkl iaretlere ve sembollere ihtiyaç duyulur.
Bilgisayarda ayrma iareti yapmak için ikili tu kombinasyonlar kullanlabilir. Standart tasarma sahip farkl marka klavyelerde, benzer komutlar kullanarak ayrma iaretini yazlr.
Alt Gr ve Shift tular farkl iaret kombinasyonlar için kullanlr. Ayrma iaretini yazmak için klavye üzerinde yer alan say tularndan 2 ve Shift tularna ayn anda baslmas gerekir. Böylece farkl metin dosyalar içinde ayrma iaretini kolayca oluturabilirsiniz.
Klavye üzerinde bozuk tular var ise kopyala yaptr yöntemini tercih edebilirsiniz. nternette ayrma iareti (') aramas yaparak çkan sembolü kopyalayarak istediiniz her alana yaptrabilirsiniz.
Okuyucu Yorumları
Duygu ve düşünceleri daha açık ifade etmek, cümlenin yapısını ve duraklama noktalarını belirlemek, okumayı ve anlamayı kolaylaştırmak, sözün vurgu ve ton gibi özelliklerini belirtmek üzere noktalama işaretlerikullanılır.
Noktalama işaretlerinden nokta, virgül, noktalı virgül, iki nokta, üç nokta, soru, ünlem, tırnak, ayraç ve kesme işaretleri ait oldukları kelimelere bitişik olarak yazılır ve kesme dışındaki işaretlerden sonra bir harf boşluğu ara verilir.
Nokta ( . )
1. Cümlenin sonuna konur: Türk Dil Kurumu, yılında kurulmuştur.
Saatler geçtikçe yollara daha mahzun bir ıssızlık çöküyordu. (Reşat Nuri Güntekin)
2. Bazı kısaltmaların sonuna konur: Alb. (albay), Dr. (doktor), Yrd. Doç. (yardımcı doçent), Prof. (profesör), Cad. (cadde), Sok. (sokak), s. (sayfa), sf. (sıfat), vb. (ve başkası, ve benzeri, ve benzerleri, ve bunun gibi), Alm. (Almanca), Ar. (Arapça), İng. (İngilizce) vb.
3. Sayılardan sonra sıra bildirmek için konur: 3. (üçüncü), (on beşinci); II. Mehmet, XIV. Louis, XV. yüzyıl; 2. Cadde, Sokak, 4. Levent vb.
4. Arka arkaya sıralandıkları için virgülle veya çizgiyle ayrılan rakamlardan yalnızca sonuncu rakamdan sonra nokta konur: 3, 4 ve 7. maddeler; XII – XIV. yüzyıllar arasında vb.
5. Bir yazının maddelerini gösteren rakam veya harflerden sonra konur:
I. 1. A. a.
II. 2. B. b.
6. Tarihlerin yazılışında gün, ay ve yılı gösteren sayıları birbirinden ayırmak için konur: , X vb.
UYARI: Tarihlerde ay adları yazıyla da yazılabilir. Bu durumda ay adlarından önce ve sonra nokta kullanılmaz: 29 Mayıs , 29 Ekim vb.
7. Saat ve dakika gösteren sayıları birbirinden ayırmak için konur: Tren ’te kalktı. Toplantı ’te başladı.
Tören ’da, hükûmet daireleri kapandıktan yarım saat sonra başlayacaktır. (Tarık Buğra)
8. Kitap, dergi seafoodplus.info künyelerinin sonuna konur:
Agâh Sırrı Levend, Türk Dilinde Gelişme ve Sadeleşme Evreleri, TDK Yayınları, Ankara,
9. Dört ve dörtten çok rakamlı sayılar sondan sayılmak üzere üçlü gruplara ayrılarak yazılır ve araya nokta konur: , , vb.
Genel ağ adreslerinde kullanılır: seafoodplus.info
Matematikte çarpma işareti yerine kullanılır: =20, =72 vb.
Virgül ( , )
1. Birbiri ardınca sıralanan eş görevli kelime ve kelime gruplarının arasına konur:
Fırtınadan, soğuktan, karanlıktan ve biraz da korkudan sonra bu sıcak, aydınlık ve sevimli odanın havasında erir gibi oldum. (Halide Edip Adıvar)
Sessiz dereler, solgun ağaçlar, sarı güller
Dillenmiş ağızlarda tutuk dilli gönüller (Faruk Nafiz Çamlıbel)
Zindana atılan mahkûmlar gibi titreşerek, haykırarak geri geri kaçmaya uğraşıyorduk. (Hüseyin Rahmi Gürpınar)
Köyde kim çaresiz kalırsa, kimin işi bozulursa İstanbul yolunu tutar. (Ömer Seyfettin)
2. Sıralı cümleleri birbirinden ayırmak için konur:
Umduk, bekledik, düşündük. (Yakup Kadri Karaosmanoğlu)
3. Uzun cümlelerde yüklemden uzak düşmüş olan özneyi belirtmek için konur:
Saniye Hanımefendi, merdivenlerde oğlunun ayak seslerini duyar duymaz, hasretlisini karşılamaya atılan bir genç kadın gibi koltuğundan fırlamış ve ona kapıyı kendi eliyle açmaya gelmişti. (Yakup Kadri Karaosmanoğlu)
4. Cümle içinde ara sözleri veya ara cümleleri ayırmak için ara sözlerin veya ara cümlelerin başına ve sonuna konur:
Zemin bu kadar koyu bir kırmızıya dönüşünce, bir an için de olsa, belirginliğini yitiriverdi sivilceleri. (Elif Şafak)
Şimdi, efendiler, müsaade buyurursanız, size bir sual sorayım. (Atatürk)
5. Anlama güç kazandırmak için tekrarlanan kelimeler arasına konur:
Akşam, yine akşam, yine akşam,
Göllerde bu dem bir kamış olsam! (Ahmet Haşim)
6. Tırnak içinde olmayan alıntı cümlelerinden sonra konur:
Adana’ya yarın gideceğim, dedi.
Aç karnına sigara içmekle hiç de iyi etmiyorsun, dedi. (Necati Cumalı)
7. Konuşma çizgisinden sonraki alıntı cümlesinin bitimine konur:
– Bu akşam Datça’ya gidiyor musunuz, diye sordu.
8. Edebî eserlerde konuşma bölümünden önceki ifadenin sonuna konur:
Bahçe kapısını açtı. Sermet Bey’e,
– Bu anahtar köşkü de açar, dedi. (Ömer Seyfettin)
9. Kendisinden sonraki cümleye bağlı olarak ret, kabul ve teşvik bildiren hayır, yok, evet, peki, pekâlâ, tamam, olur, hayhay, başüstüne, öyle, haydi, elbette gibi kelimelerden sonra konur: Peki, gideriz. Olur, ben de size katılırım. Hayhay, memnun oluruz. Haydi, geç kalıyoruz.
Evet, kırk seneden beri Türkçe merhale merhale Türkleşiyor. (Yahya Kemal Beyatlı)
Bir kelimenin kendisinden sonra gelen kelime veya kelime gruplarıyla yapı ve anlam bakımından bağlantısı olmadığını göstermek ve anlam karışıklığını önlemek için kullanılır:
Bu, tek gözlü, genç fakat ihtiyar görünen bir adamcağızdır. (Halit Ziya Uşaklıgil)
Bu gece, eğlenceleri içlerine sinmedi. (Reşat Nuri Güntekin)
Hitap için kullanılan kelimelerden sonra konur:
Efendiler, bilirsiniz ki hayat demek, mücadele, müsademe demektir. (Atatürk)
Sayın Başkan,
Sevgili Kardeşim,
Değerli Arkadaşım,
Sayıların yazılışında kesirleri ayırmak için kullanılır: 38,6 (otuz sekiz tam, onda altı), 0,45 (sıfır tam, yüzde kırk beş)
Metin içindeart arda gelen zarf-fiil eki almış kelimelerden sonra konur:
Ancak yemekte bir karara varıp, arkadaşına dikkatli dikkatli bakarak konuştu.
UYARI: Metin içindezarf-fiil eki almış kelimelerden sonra virgül konmaz:
Cumaları bahçede buluştukça kıza kendisinin adi bir mektep talebesi olmadığını anlatmaya çalışıyordu. (Halide Edip Adıvar)
Şimdiye dek, ben kendimi bildim bileli kimse Değirmenoluk köyünden kaçıp da başka köyde çobanlık, yanaşmalık etmedi. (Yaşar Kemal)
Meydanlığa varmadan bir iki defa İsmail kendisini gördü mü diye kahveye baktı. (Necati Cumalı)
Özne olarak kullanıldıklarında bu, şu, o zamirlerinden sonra konur:
Bu, benim gibi yazarlar için hiç kolay olmaz.
O, eski defterleri çoktan kapatmış, Osmanlıya kucağını açmıştı. (Tarık Buğra)
Kitap, dergi seafoodplus.info künyelerinde yazar, eser, basımevi vb. maddelerden sonra konur:
Falih Rıfkı ATAY, Tuna Kıyıları, Remzi Kitabevi, İstanbul, .
Yazarın soyadı önce yazılmışsa soyadından sonra da virgül konur:
ERGİN, Muharrem, Dede Korkut Kitabı, Ankara,
UYARI: Metin içinde ve, veya, yahut, ya ya bağlaçlarından önce de sonra da virgül konmaz:
Nihat sabaha kadar uyuyamadı ve şafak sökerken Faik’e bol teşekkürlerle dolu bir kâğıt bırakarak iki gün evvelki cephe dönüşü kıyafeti ile sokağa fırladı. (Peyami Safa)
Ya şevk içinde harap ol ya aşk içinde gönül
Ya lale açmalıdır göğsümüzde yahut gül! (Yahya Kemal Beyatlı)
UYARI: Tekrarlı bağlaçlardan önce ve sonra virgül konmaz:
Hem gider hem ağlar.
Ya bu deveyi gütmeli ya bu diyardan gitmeli. (Atasözü)
Gerek nesirde gerek nazımda yeni bir söyleyişe ulaşılmıştır.
Siz ister inanın ister inanmayın, bir gün bile durmam.
Ne kız verir ne dünürü küstürür.
Bu kurallar bugün de yarın da geçerli olacaktır.
UYARI: Cümlede pekiştirme ve bağlama görevinde kullanılan da / de bağlacından sonra virgül konmaz:
İmlamız lisanımız düzelince, lisanımız da kafamız düzelince düzelecek çünkü o da ancak onlar kadar bozuktur, fazla değil! (Yahya Kemal Beyatlı)
UYARI: Metin içinde -ınca / -ince anlamıyla zarf-fiil görevinde kullanılan mı / mi ekinden sonra virgül konmaz:
Ben aç yattım mı kötü kötü rüyalar görürüm nedense. (Orhan Kemal)
Öyle zekiler vardır, konuştular mı ağızlarından bal akıyor sanırsın. (Attila İlhan)
UYARI: Şart ekinden sonra virgül konmaz:
Tenha köşelerde ağız ağıza konuşurken yanlarına biri gelecek olursa hemen susuyorlardı. (Reşat Nuri Güntekin)
Gör gözlerinle de aklın yatarsa anlatıver millete. (Tarık Buğra)
Noktalı Virgül ( ; )
1. Cümle içinde virgüllerle ayrılmış tür veya takımları birbirinden ayırmak için konur: Erkek çocuklara Doğan, Tuğrul, Aslan, Orhan; kız çocuklara ise İnci, Çiçek, Gönül, Yonca adları verilir.
Türkiye, İngiltere, Azerbaycan; Ankara, Londra, Bakü.
2. Ögeleri arasında virgül bulunan sıralı cümleleri birbirinden ayırmak için konur: Sevinçten, heyecandan içim içime sığmıyor; bağırmak, kahkahalar atmak, ağlamak istiyorum.
At ölür, meydan kalır; yiğit ölür, şan kalır. (Atasözü)
3. İkiden fazla eş değer ögeler arasında virgül bulunan cümlelerde özneden sonra noktalı virgül konabilir:
Yeni usul şiirimiz; zevksiz, köksüz, acemice görünüyordu. (Yahya Kemal Beyatlı)
İki Nokta (: )
1.Kendisiyle ilgili örnek verilecek cümlenin sonuna konur:
Millî Edebiyat akımının temsilcilerinden bir kısmını sıralayalım: Ömer Seyfettin, Halide Edip Adıvar, Ziya Gökalp, Mehmet Emin Yurdakul, Ali Canip Yöntem.
2. Kendisiyle ilgili açıklama verilecek cümlenin sonuna konur:
Bu kararın istinat ettiği en kuvvetli muhakeme ve mantık şu idi: Esas, Türk milletinin haysiyetli ve şerefli bir millet olarak yaşamasıdır. (Atatürk)
Kendimi takdim edeyim: Meclis kâtiplerindenim. (Falih Rıfkı Atay)
3. Ses bilgisinde uzun ünlüyü göstermek için kullanılır: a:ile, ka:til, usu:le, i:cat.
4. Karşılıklı konuşmalarda, konuşan kişiyi belirten sözlerden sonra konur:
Bilge Kağan: Türklerim, işitin!
Üstten gök çökmedikçe,
alttan yer delinmedikçe
ülkenizi, törenizi kim bozabilir sizin?
Koro: Göğe erer başımız
başınla senin!
Bilge Kağan: Ulusum birleşip yücelsin diye
gece uyumadım, gündüz oturmadım.
Türklerim Bilge Kağan der bana.
Ben her şeyi onlar için bildim.
Nöbetteyim! (A. Turan Oflazoğlu)
5. Edebî eserlerde konuşma bölümünden önceki ifadenin sonuna konur:
– Buğdayla arpadan başka ne biter bu topraklarda?
Ziraatçı sayar:
– Yulaf, pancar, zerzevat, tütün (Falih Rıfkı Atay)
6. Genel ağ adreslerinde kullanılır: seafoodplus.info
7. Matematikte bölme işareti olarak kullanılır: =7, =50 vb.
Üç Nokta ( )
1. Anlatım olarak tamamlanmamış cümlelerin sonuna konur:
Ne çare ki çirkinliği hemencecik ve herkes tarafından görülüveriyordu da bu yanı (Tarık Buğra)
2. Kaba sayıldığı için veya bir başka sebepten dolayı açık yazılmak istenmeyen kelime ve bölümlerin yerine konur: Kılavuzu karga olanın burnu btan çıkmaz.
Arabacı B’a yaklaştığını söylüyor, ikide bir fırsat bularak arabanın içine doğru başını çeviriyordu. (Ahmet Hamdi Tanpınar)
3. Alıntılarda başta, ortada ve sonda alınmayan kelime veya bölümlerin yerine konur:
derken şehrin öte başından boğuk boğuk sesler gelmeye başladı (Tarık Buğra)
4. Sözün bir yerde kesilerek geri kalan bölümün okuyucunun hayal dünyasına bırakıldığını göstermek veya ifadeye güç katmak için konur:
Sana uğurlar olsun Ayrılıyor yolumuz! (Faruk Nafiz Çamlıbel)
Binaenaleyh, biz her vasıtadan, yalnız ve ancak, bir noktainazardan istifade ederiz. O noktainazar şudur: Türk milletini, medeni cihanda layık olduğu mevkiye isat etmek ve Türk cumhuriyetini sarsılmaz temelleri üzerinde, her gün, daha ziyade takviye etmek (Atatürk)
5. Ünlem ve seslenmelerde anlatımı pekiştirmek için konur:
Gölgeler yaklaştılar. Bir adım kalınca onu kıyafetinden tanıdılar:
— Koca Ali Koca Ali, be!.. (Ömer Seyfettin)
UYARI: Ünlem ve soru işaretinden sonra üç nokta yerine iki nokta konulması yeterlidir:
Gök ekini biçer gibi!.. Başaklar daha dolmadan. (Tarık Buğra)
Nasıl da akşam oldu?.. Nasıl da yavrucaklar sustu?.. Nasıl da serçecikler yuvalarına sığındı?.. (Necip Fazıl Kısakürek)
6. Karşılıklı konuşmalarda, yeterli olmayan, eksik bırakılan cevaplarda kullanılır:
— Yabancı yok!
— Kimsin?
— Ali
— Hangi Ali?
—
— Sen misin, Ali usta?
— Benim!..
— Ne arıyorsun bu vakit buralarda?
— Hiç
— Nasıl hiç? Suya çekicini mi düşürdün yoksa!..
— !.. (Ömer Seyfettin)
UYARI: Üç nokta yerine iki veya daha çok nokta kullanılmaz.
Soru İşareti ( ? )
1. Soru eki veya sözü içeren cümle veya sözlerin sonuna konur:
Ne zaman tükenecek bu yollar, arabacı? (Faruk Nafiz Çamlıbel)
Atatürk bana sordu:
— Yeni yazıyı tatbik etmek için ne düşündünüz? (Falih Rıfkı Atay)
2. Soru bildiren ancak soru eki veya sözü içermeyen cümlelerin sonuna konur:
Gümrükteki memur başını kaldırdı:
— Adınız?
3. Bilinmeyen, kesin olmayan veya şüpheyle karşılanan yer, tarih vb. durumlar için kullanılır: Yunus Emre ( ?), (Doğum yeri: ?) vb.
(?) yılında doğan Fuzuli
Ankara’dan Antalya’ya arabayla üç saatte (?) gitmiş.
UYARI: mı / mi ekini alan yan cümle temel cümlenin zarf tümleci olduğunda cümlenin sonuna soru işareti konmaz: Akşam oldu mu sürüler döner. Hava karardı mı eve gideriz.
Bahar gelip de nehir çağıl çağıl kabarmaya başlamaz mı içimi geri kalmış bir saat huzursuzluğu kaplardı. (Haldun Taner)
UYARI: Soru ifadesi taşıyan sıralı ve bağlı cümlelerde soru işareti en sona konur:
Çok yakından mı bu sesler, çok uzaklardan mı?
Üsküdar’dan mı, Hisar’dan mı, Kavaklardan mı? (Yahya Kemal Beyatlı)
Ünlem İşareti ( ! )
1. Sevinç, kıvanç, acı, korku, şaşma gibi duyguları anlatan cümle veya ibarelerin sonuna konur: Hava ne kadar da sıcak!Aşk olsun! Ne kadar akıllı adamlar var! Vah vah!
Ne mutlu Türk’üm diyene! (Atatürk)
2. Seslenme, hitap ve uyarı sözlerinden sonra konur:
Ordular! İlk hedefiniz Akdeniz’dir, ileri! (Atatürk)
Ey Türk gençliği! Birinci vazifen; Türk istiklalini, Türk cumhuriyetini, ilelebet, muhafaza ve müdafaa etmektir. (Atatürk)
Ak tolgalı beylerbeyi haykırdı: İlerle! (Yahya Kemal Beyatlı)
Dur, yolcu! Bilmeden gelip bastığın
Bu toprak bir devrin battığı yerdir. (Necmettin Halil Onan)
UYARI: Ünlem işareti, seslenme ve hitap sözlerinden hemen sonra konulabileceği gibi cümlenin sonuna da konabilir:
Arkadaş, biz bu yolda türküler tuttururken
Sana uğurlar olsun Ayrılıyor yolumuz!(Faruk Nafiz Çamlıbel)
3. Alay, kinaye veya küçümseme anlamı kazandırılmak istenen sözden hemen sonra yay ayraç içinde ünlem işareti kullanılır:
İsteseymiş bir günde bitirirmiş (!) ama ne yazık ki vakti yokmuş (!).
Adam, akıllı (!) olduğunu söylüyor.
Kısa Çizgi ( )
1. Satıra sığmayan kelimeler bölünürken satır sonuna konur:
Soğuktan mı titriyordum, yoksa heyecandan, üzüntüden mi bil-
mem. Havuzun suyu bulanık. Kapının saatleri 12’yi geçmiş. Kanepe-
lerde kimseler yok. Tramvay ne fena gıcırdadı! Tramvayda-
ki adam bir tanıdık mı idi acaba? Ne diye öyle dönüp dönüp baktı?
Yoksa kimseciklerin oturmadığı kanepelerde bu saatte pek başıboş-
lar mı oturur? (Sait Faik Abasıyanık)
2. Cümle içinde ara sözleri veya ara cümleleri ayırmak için ara sözlerin veya ara cümlelerin başına ve sonuna konur, bitişik yazılır:
Küçük bir sürü -dört inekle birkaç koyun- köye giren geniş yolun ağzında durmuştu. (Ömer Seyfettin)
3. Kelimelerin kökleri, gövdeleri ve eklerini birbirinden ayırmak için kullanılır: al-ış, dur-ak, gör-gü-süz-lük vb.
4. Fiil kök ve gövdelerini göstermek için kullanılır: al-, dur-, gör-, ver-; başar-, kana-, okut-, taşla-, yazdır- vb.
5. İsim yapma eklerinin başına, fiil yapma eklerinin başına ve sonuna konur: -ak, -den, -ış, -lık; -ımsa-; -la-; -tır- vb.
6. Heceleri göstermek için kullanılır: a-raş-tır-ma, bi-le-zik, du-ruş-ma, ku-yum-cu-luk, prog-ram, ya-zar-lık vb.
7. Arasında, ve, ile, ila, -den -e anlamlarını vermek için kelimeler veya sayılar arasında kullanılır: Aydın-İzmir yolu, Türk-Alman ilişkileri, Ural-Altay dil grubu, Dil ve Tarih-Coğrafya Fakültesi, , Beşiktaş-Fenerbahçe karşılaşması, Manas Destanı’nda soy-dil-din üçgeni, Birinci Dünya Savaşı, Türkçe-Fransızca Sözlük vb.
UYARI: Cümle içinde sayı adlarının yinelenmesinde araya kısa çizgi konmaz: On on beş yıl. Üç beş kişi geldi.
8. Matematikte çıkarma işareti olarak kullanılır: =30
9. Sıfırdan küçük değerleri göstermek için kullanılır: -2 °C
Uzun Çizgi (—)
Yazıda satır başına alınan konuşmaları göstermek için kullanılır. Buna konuşma çizgiside denir.
Frankfurt’a gelene herkesin sorduğu şunlardır:
— Eski şehri gezdin mi?
— Rothschild’in evine gittin mi?
— Goethe’nin evini gezdin mi? (Ahmet Haşim)
Oyunlarda uzun çizgi konuşanın adından sonra da konabilir:
Sıtkı Bey — Kaleyi kurtarmak için daha güzel bir çare var. Gerçekten ölecek adam ister.
İslam Bey — Ben daha ölmedim. (Namık Kemal)
UYARI: Konuşmalar tırnak içinde verildiğinde uzun çizgi kullanılmaz.
Arabamız tutarken Erciyes’in yolunu:
“Hancı dedim, bildin mi Maraşlı Şeyhoğlu’nu?” (Faruk Nafiz Çamlıbel)
Eğik Çizgi ( / )
1. Dizeler yan yana yazıldığında aralarına konur: Korkma! Sönmez bu şafaklarda yüzen al sancak / Sönmeden yurdumun üstünde tüten en son ocak / O benim milletimin yıldızıdır, parlayacak / O benimdir, o benim milletimindir ancak. (Mehmet Akif Ersoy)
2. Adres yazarken apartman numarası ile daire numarası arasına ve semt ile şehir arasına konur: Altay Sokağı No.: 21/6 Kurtuluş / ANKARA
Ülke adı yazılacağında ise:
Atatürk Bulvarı No.:
Kavaklıdere / Ankara
3. Tarihlerin yazılışında gün, ay ve yılı gösteren sayıları birbirinden ayırmak için konur: 18/11/, 15/IX/ vb.
4. Dil bilgisinde eklerin farklı biçimlerini göstermek için kullanılır: -a /-e, -an /-en, -lık /-lik, -madan /-meden vb.
5. Genel ağ adreslerinde kullanılır: seafoodplus.info
6. Matematikte bölme işareti olarak kullanılır: 70/2=35
7. Fizik, matematik vb. alanlarda birimler arası orantıları gösterirken eğik çizgi araya boşluk konulmadan kullanılır: g/sn (gram/saniye)
Ters Eğik Çizgi ( \ )
Bilişim uygulamalarında art arda gelen dizinleri birbirinden ayırt etmek için kullanılır: C:\Belgelerim\Türk İşaret Dili\Kitapçıseafoodplus.info
Tırnak İşareti ( “ ” )
1. Başka bir kimseden veya yazıdan olduğu gibi aktarılan sözler tırnak içine alınır: Türk Dil Kurumu binasının yan cephesinde Atatürk’ün “Türk dili, Türk milletinin kalbidir, zihnidir.” sözü yazılıdır. Dil ve Tarih-Coğrafya Fakültesinin ön cephesinde Atatürk’ün “Hayatta en hakiki mürşit ilimdir.” vecizesi yer almaktadır. Ulu önderin “Ne mutlu Türk’üm diyene!” sözü her Türk’ü duygulandırır.
Bakınız, şair vatanı ne güzel tarif ediyor:
“Bayrakları bayrak yapan üstündeki kandır.
Toprak eğer uğrunda ölen varsa vatandır.”
UYARI: Tırnak içindeki alıntının sonunda bulunan işaret (nokta, soru işareti, ünlem işareti vb.) tırnak içinde kalır:
“İzmir üzerine dünyada bir şehir daha yoktur!” diyorlar. (Yahya Kemal Beyatlı)
2. Özel olarak vurgulanmak istenen sözler tırnak içine alınır: Yeni bir “barış taarruzu” başladı.
3. Cümle içerisinde eserlerin ve yazıların adları ile bölüm başlıkları tırnak içine alınır:
Bugün öğrenciler “Kendi Gök Kubbemiz” adlı şiiri incelediler.
“Yazım Kuralları” bölümünde bazı uyarılara yer verilmiştir.
UYARI: Cümle içerisinde özel olarak belirtilmek istenen sözler, kitap ve dergi adları ve başlıkları tırnak içine alınmaksızın eğik yazıyla dizilerek de gösterilebilir:
Höyük sözü Anadolu’datepeolarak geçer.
Cahit Sıtkı’nın Şairin Ölümü şiirini Yahya Kemal çok sevmişti. (Ahmet Hamdi Tanpınar)
UYARI: Tırnak içine alınan sözlerden sonra gelen ekleri ayırmak için kesme işareti kullanılmaz: Elif Şafak’ın “Bit Palas”ını okudunuz mu?
4. Bilimsel çalışmalarda künye verilirken makale adları tırnak içinde yazılır.
Tek Tırnak İşareti ( ‘ ’ )
Tırnak içinde verilen cümlenin içinde yeniden tırnağa alınması gereken bir sözü, ibareyi belirtmek için kullanılır:
Edebiyat öğretmeni “Şiirler içinde ‘Han Duvarları’ gibisi var mı?” dedi ve Faruk Nafiz’in bu güzel şiirini okumaya başladı.
“Atatürk henüz ‘Gazi Mustafa Kemal Paşa’ idi. Benden ona dair bir kitap için ön söz istemişlerdi.” (Falih Rıfkı Atay)
Denden İşareti ()
Bir yazıdaki maddelerin sıralanmasında veya bir çizelgede alt alta gelen aynı sözlerin, söz gruplarının ve sayıların tekrar yazılmasını önlemek için kullanılır:
a. Etken fiil
b. Edilgen
c. Dönüşlü
ç. İşteş
Yay Ayraç ( )
1. Cümledeki anlamı tamamlayan ve cümlenin dışında kalan ek bilgiler için kullanılır. Yay ayraç içinde bulunan ve yargı bildiren anlatımların sonuna uygun noktalama işareti konur:
Anadolu kentlerini, köylerini (Köy sözünü de çekinerek yazıyorum.) gezsek bile görmek için değil, kendimizi göstermek için geziyoruz. (Nurullah Ataç)
2. Özel veya cins isme ait ek, ayraçtan önce yazılır:
Yunus Emre’nin (?)
İmek fiilinin (ek fiil) geniş zamanı şahıs ekleriyle çekilir.
3. Tiyatro eserlerinde ve senaryolarda konuşanın hareketlerini, durumunu açıklamak ve göstermek için kullanılır:
İhtiyar – (Yavaş yavaş Kaymakama yaklaşır.) Ne oluyor beyefendi? Allah rızası için bana da anlatın (Reşat Nuri Güntekin)
4. Alıntıların aktarıldığı eseri, yazarı veya künye bilgilerini göstermek için kullanılır:
Cihanın tarihi, vatanı uğrunda senin kadar uğraşan, kanını döken bir millet daha gösteremez. Senin kadar kimse kendi vatanına sahip olmaya hak kazanmamıştır. Bu vatan ya senindir ya kimsenin. (Ahmet Hikmet Müftüoğlu)
Eşin var, aşiyanın var, baharın var ki beklerdin
Kıyametler koparmak neydi ey bülbül, nedir derdin? (Mehmet Akif Ersoy)
Bir isim kökü, gerektiğinde çeşitli eklerle fiil kökü durumuna getirilebilir (Zülfikar 45).
5. Alıntılarda, alınmayan kelime veya bölümlerin yerine konulan üç nokta, yay ayraç içine alınabilir.
6. Bir söze alay, kinaye veya küçümseme anlamı kazandırmak için kullanılan ünlem işareti yay ayraç içine alınır: Adam, akıllı (!) olduğunu söylüyor.
7. Bir bilginin şüpheyle karşılandığını veya kesin olmadığını göstermek için kullanılan soru işareti yay ayraç içine alınır: (?) yılında doğan Fuzuli
8. Bir yazının maddelerini gösteren sayı ve harflerden sonra kapama ayracı konur:
I) 1) A) a)
II) 2) B) b)
Köşeli Ayraç ( [ ] )
1. Ayraç içinde ayraç kullanılması gereken durumlarda yay ayraçtan önce köşeli ayraç kullanılır: Halikarnas Balıkçısı [Cevat Şakir Kabaağaçlı ()] en güzel eserlerini Bodrum’da yazmıştır.
2. Metin aktarmalarında, çevirilerde, alıntılarda çalışmayı yapanın eklediği sözler için kullanılır: “Eldem, Osmanlıda en önemli fark[ın], mezar taşının şeklinde ortaya çık[tığını] söyledikten sonra” (Hilmi Yavuz)
3. Kaynak olarak verilen kitap veya makalelerin künyelerine ilişkin bazı ayrıntıları göstermek için kullanılır: Reşat Nuri [Güntekin], Çalıkuşu, Dersaadet, Server Bedi [Peyami Safa]
Kesme İşareti ( ’ )
1. Özel adlara getirilen iyelik, durum ve bildirme ekleri kesme işaretiyle ayrılır: Kurtuluş Savaşı’nı,Atatürk’üm, Türkiye’mizin, Fatih Sultan Mehmet’e, Muhibbi’nin, Gül Baba’ya, Sultan Ana’nın, Mehmet Emin Yurdakul’dan, Kâzım Karabekir’i, Yunus Emre’yi, Ziya Gökalp’tan, Refik Halit Karay’mış, Ahmet Cevat Emre’dir, Namık Kemal’se, Şinasi’yle, Alman’sınız, Kırgız’ım, Karakeçili’nin, Osmanlı Devleti’ndeki, Cebrail’den, Çanakkale Boğazı’nın, Samanyolu’nda, Sait Halim Paşa Yalısı’ndan, Resmî Gazete’de, Millî Eğitim Temel Kanunu’na, Telif Hakkı Yayın ve Satış Yönetmeliği’ni, Eski Çağ’ın, Yükselme Dönemi’nin, Cumhuriyet Dönemi Türk Edebiyatı’na vb.
“Onun için Batı’da bunlara birer fonksiyon buluyorlar.” (Burhan Felek)
senesi Mayıs’ının 19’uncu günü Samsun’a çıktım.(Atatürk)
Yer bildiren özel isimlerde kısaltmalı söyleyiş söz konusu olduğu zaman ekten önce kesme işareti kullanılır:Hisar’dan, Boğaz’danvb.
Belli bir kanun, tüzük, yönetmelik kastedildiğinde büyük harfle yazılan kanun, tüzük, yönetmelik sözlerinin ek alması durumunda kesme işareti kullanılır: Bu Kanun’un maddesinin c bendi Yukarıda adı geçen Yönetmelik’in 2’nci maddesine göre vb.
Özel adlar için yay ayraç içinde bir açıklama yapıldığında kesme işareti yay ayraçtan önce kullanılır: Yunus Emre’nin (?), Yakup Kadri’nin (Karaosmanoğlu) vb.
Ek getirildiğinde Avrupa Birliği kesme işareti ile kullanılır: Avrupa Birliği’ne üye ülkeler
UYARI:Sonunda 3. teklik kişi iyelik eki olan özel ada, bu ek dışında başka bir iyelik eki getirildiğinde kesme işareti konmaz: Boğaz Köprümüzün güzelliği, Amik Ovamızın bitki örtüsü, Kuşadamızdaki limanvb.
UYARI: Kurum, kuruluş, kurul, birleşim, oturum ve iş yeri adlarına gelen ekler kesmeyle ayrılmaz: Türkiye Büyük Millet Meclisine, Türk Dil Kurumundan, Türkiye Petrolleri Anonim Ortaklığına, Türk Dili ve Edebiyatı Bölümü Başkanlığının; Bakanlar Kurulunun, Danışma Kurulundan, Yürütme Kuruluna; Türkiye Büyük Millet Meclisinin ’nci Birleşiminin 2’nci Oturumunda; Mavi Köşe Bakkaliyesinden vb.
UYARI: Başbakanlık, Rektörlük vb. sözler ünlüyle başlayan bir ek geldiğinde Başbakanlığa, Rektörlüğe vb. biçimlerde yazılır.
UYARI: Özel adlara getirilen yapım ekleri, çokluk eki ve bunlardan sonra gelen diğer ekler kesmeyle ayrılmaz: Türklük, Türkleşmek, Türkçü, Türkçülük, Türkçe, Müslümanlık, Hristiyanlık, Avrupalı, Avrupalılaşmak, Aydınlı, Konyalı, Bursalı, Ahmetler, Mehmetler, Yakup Kadriler, Türklerin, Türklüğün, Türkleşmekte, Türkçenin, Müslümanlıkta, Hollandalıdan, Hristiyanlıktan, Atatürkçülüğün vb.
UYARI: Sonunda p, ç, t, k ünsüzlerinden biri bulunan Ahmet, Çelik, Halit, Şahap; Bosna-Hersek; Kerkük, Sinop, Tokat, Zonguldak gibi özel adlara ünlüyle başlayan ek getirildiğinde kesme işaretine rağmen Ahmedi, Halidi, Şahabı; Bosna-Herseği; Kerküğü, Sinobu, Tokadı, Zonguldağı biçiminde son ses yumuşatılarak söylenir.
UYARI: Özel adlar yerine kullanılan “o” zamiri cümle içinde büyük harfle yazılmaz ve kendisinden sonra gelen ekler kesme işaretiyle ayrılmaz.
2. Kişi adlarından sonra gelen saygı ve unvan sözlerine getirilen ekleri ayırmak için konur: Nihat Bey’e, Ayşe Hanım’dan, Mahmut Efendi’ye, Enver Paşa’ya; Türk Dil Kurumu Başkanı’na vb.
3. Kısaltmalara getirilen ekleri ayırmak için konur: TBMM’nin, TDK’nin, BM’de, ABD’de, TV’ye vb.
4. Sayılara getirilen ekleri ayırmak için konur: ’te, 8’inci madde, 2’nci kat; 7,65’lik, 9,65’lik, ’yle vb.
5. Belirli bir tarih bildiren ay ve gün adlarına gelen ekleri ayırmak için konur: Başvurular 17 Aralık’a kadar sürecektir. Yabancı Sözlere Karşılıklar Kılavuzu’nun veri tabanının genel ağda hizmete sunulduğu gün olan 12 Temmuz Pazartesi’nin TDK için önemi büyüktür.
6. Seslerin ölçü ve söyleyiş gereği düştüğünü göstermek için kullanılır:
Bir ok attım karlı dağın ardına
Düştü m’ola sevdiğimin yurduna
İl yanmazken ben yanarım derdine
Engel aramızı açtı n’eyleyim (Karacaoğlan)
Şems’in gözlerine bir şüphe çöreklendi: “Dostum ne’n var? Her şey yolunda mı?” (Elif Şafak)
Güzelliğin on par’etmez
Bu bendeki aşk olmasa (Âşık Veysel)
7. Bir ek veya harften sonra gelen ekleri ayırmak için konur: a’dan z’ye kadar, Türkçede -lık’la yapılmış sözler.