String. 1.1 Python da String



Benzer belgeler
String String İşlemleri

Mantıksal İşlemler. 7.1 true, false, nil

Biçem Belirteçleri (Format Specifiers)

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

Java: printf() Metodu İle Çıktıyı Biçemleme

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

C Konsol Giriş Çıkış Fonksiyonları

HSancak Nesne Tabanlı Programlama I Ders Notları

Her veri tipine yetecek ve ancak o kadar anabellek alanı ayrılır. Programcı, ana bellekte ayrılacak adresin büyüklüğünü bilerek değişkenlerini

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Nesne Tabanlı Programlama

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C Programlama Dilininin Basit Yapıları

// hataları işaret eden referans

Print Komutu ile Değişkenleri Yazdırmak

Nesne Tabanlı Programlama

Java String İşlemleri

Pointer Kavramı. Veri Yapıları

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

Python ile Programlamaya Giris

Python Programlama Dili

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

PASCAL PROGRAMLAMA DİLİ YAPISI

C#(Sharp) Programlama Dili

(Sözlük, dictionary, birleşik array, map)

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

NESNEYE YÖNELİK PROGRAMLAMA

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

Diziler İndisli Değişkenler

Sayıtlama Dizgeleri. (a n a n-1 a n1 a n0. b 1 b 2 b m )r. simgesi şu sayıyı temsil eder.

YZM 2105 Nesneye Yönelik Programlama

ALGORİTMA VE PROGRAMLAMA I

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Temel Giriş/Çıkış Fonksiyonları

Operatörler. 6.1 Operatör Nedir?

EMT2226 Nesne Yönelimli Programlamaya Giriş

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

Programlama Dillerinde Kullanılan Veri Tipleri

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan

Göstericiler (Pointers)

Nesne Yönelimli Programlama

ArrayList Uygulamaları

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

TEMEL STRING İŞLEMLERİ

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

MATLAB/Değişkene Değer Atamak

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

çindekiler 3 Python Programlarn Yürütme Kaynak Program... 24

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

C PROGRAMLAMA DİLİNE GİRİŞ

HSancak Nesne Tabanlı Programlama I Ders Notları

Programlama Dilleri 1. Ders 4: Diziler

Girdi Çıktı İşlemleri

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

C PROGRAMLAMA D İ L İ

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Lab105-02/ BAHAR DÖNEMİ 3.Hafta Tarih:

Aritmetik Operatörleri Hemen her programlama dilinde olduğu gibi java dilinde de aritmetik işlemler yaparken aşağıdaki operatörleri kullanırız:

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

PROGRAMLAMAYA GİRİŞ DERS 2

Her veri tipine yetecek ve ancak o kadar anabellek alanı ayrılır. Programcı, ana bellekte ayrılacak adresin büyüklüğünü bilerek değişkenlerini

Lambda İfadeleri (Lambda Expressions)

HSancak Nesne Tabanlı Programlama I Ders Notları

Python Programlama Dili

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Word Otomatik Düzelt

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Ardışık Veri Tipleri. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

EXCEL 2007 ELEKTRONİK ÇİZELGE

.docx veya.doc (2007 ve üzeri sürümlerde.docx iken sürümlerinde.doc tur.) 1.Belge Başlığı

Özyineleme (Recursion)

BİLGİSAYAR PROGRAMLAMA DERSİ

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Oracle Database 11g: Introduction to SQL

/*int sayi1, sayi2,toplam=0;

FORMÜL ADI (FONKSİYON) FORMÜLÜN YAZILIŞI YAPTIĞI İŞLEMİN AÇIKLAMASI

Transkript:

Bölüm 1 String String, Türkçe de metin diye adlandırılan veri tipidir. Bilgisayara giriş ve çıkışlar karekter dizileri biçimindedir; yani girdi ve çıktılar birer stringdir. Dolayısıyla, programlama dillerinde en çok kullanılan veri tipidir. Her dilde string (metin) veri tipi vardır ya da karekter dizileri olarak elde edilebilirler. Nesne tabanlı dillerde bir sınıf olarak vardır. Farklı dillerde string ler üzerinde yapılan işlemler de birbirlerine benzer. String veri tipi ile yapılan çok iş vardır. Çıktıyı biçemlemek, iki metni birleştirmek, bir metnin bir alt metnini seçmek, metindeki harfleri büyük harfe ya da küçük harfe dönüştürmek, iki metni mukayese etmek, bir metinde bir alt metni ya da bir karekteri aramak gibi işleri yapan metotlar string işlemleri diye adlandırılır. 1.1 Python da String Python da string (metin) veri tipi str adlı bir sınıftır. Bu sınıf dile gömülüdür (built-in). Dolayısıyla str öğelerini sınıfı çağırmaya gerek kalmadan kullanabiliriz. Ayrıca string modülü çok sayıda özniteliğe (değişken) ve metoda sahiptir. Onlar, metinlerle yapılabilecek hemen her işlemi yapmaya yeterlidir. Tabii, programcı, istediğinde kendi sınıf, modül ve metotlarını tanımlayabilir. String ler nesnelerdir. Bir string nesnesi yaratıldığında, onun karekterleri ana bellekte ardışık hücrelere yerleşir. Çünkü string nesnesi bir karekter array idir. O nedenle, hemen her dilde string nesneleri ana bellekte yerleştikleri yerde uzayıp kısalamazlar. Başka bir deyişle, string nesneleri değiştirilemez (immutable). Değiştirilmeleri için, ana bellekte yeni biçemle-

2 String rine (format) uyan bir yer ayrılır ve oraya yeni biçemleriyle yazılırlar. Python dilinde de böyledir;string nesneleri değişemez (immutable). Prosedural dillerden gelen alışkanlığa uyarak, string lerle ile yapılan işlemlere string işlemleri diyeceğiz. str çok kullanılan bir veri tipi olduğu için, onunla ilgili işlemler de çoktur. Bu bölümde Python da string işlemlerinin başlıcalarını; yani string nesnelerine uygulanan başlıca operatörleri ve metotları inceleyeceğiz. Metotların tam listesi için Python web sayfasına bakılabilir [1]. Regüler python stringleri unicode karekterleri ile yazılmaz. UTF-8 dönüşümünü kullanarak her alfabede yazabilir. Ayrıca karekterin ya da stringin önüne u konularak unicode a dönüştürülebilir. str bir unicode ile yazılmış olsun. str stringini byte karekterlere dönüştürmek için 1 s = str. encode ( utf -8 ) deyimi kullanılır. Tersine olarak byte karekterlerle yazılmış bir stringi unicode karekterlere dönüştürmek için 1 t = unicode (s, utf -8 ) deyimi kullanılır. Bu eylemlerden sonra 1 t == unistring deyimi True değerini verecektir. 1.2 Python da Karekterler Python da karekter (char, character) veri tipi yoktur. Uzunluğu 1 olan string bir karekter yerine geçer. Karekterler string in altstringi olarak elde edilebilir. 1.3 Python da String Bildirimi Python da string tipi değişken bildirimi, genel değişken bildirimi kuralına uyar. Bir değişken adına string tipinden bir değer atanınca, bildirim tamamlanmış olur. Gerçekte bu eylem, str sınıfına ait bir nesne yaratır ve söz konusu değişken o nesnenin işaretçisi (pointer) olur. Python da str nesneleri tek tırnak ( ) içinde, iki tırnak (" ") içinde, üç tane tek tırnak ( ) ya

1.3 Python da String Bildirimi 3 da üç tane çift tırnak (""" """) içinde oluşturulabilir. Aşağıdaki bildirimler geçerlidir; yani her birisi bir str nesnesi yaratır: Betik 1.1. 1 str1 = Uzun ince bir yoldayım str2 = " Gidiyorum gündüz gece " 3 str3 = Bilmiyorum ne haldayım str4 = """ Gidiyorum gündüz gece """ Gerçekten bunların string tipinden olup olmadıklarını denetlemek için, Python un type() metodunu kullanabiliriz. Betik 1.2. >>> type ( str1 ) 2 <class str > 4 >>> type ( str2 ) <class str > 6 >>> type ( str3 ) 8 <class str > 10 >>> type ( str4 ) <class str > type() metodunun verdiği yanıtlardan çıkan sonuç şudur: yukarıdaki deyimlerle tanımlanan dört değişkenin her birisi str sınıfına ait bir nesnenin referansıdır; yani herbirisi str tipi bir nesne işaret eden pointerdir. Son iki bildirim açıklama (döküman) hazırlamaya da yaradığı için, ilk ikisinden farklıdır. Bu konuyu sonra ele alacağız. Şimdilik, string tipinden değişken tanımlarken, ilk iki yöntemi kullanacağız; yani stringi ya tek tırnak ya da çift tırnak içinde vereceğiz. Python da string için tek tırnak ile çift tırnak aynı işi görür. Betik 1.3. 1 metin1 = Merhaba Python! metin2 = " Python nesne tabanlı bir programlama dilidir." deyimleri metin1 ve metin2 adlı iki string tanımlar. String içinde kesme simgesi kullanılacağı zaman tek ve çift tırnak kullanmak kolaylık getirir. Örneğin, Betik 1.4.

4 String metin3 = " Ankara nın taşına bak!" metninde ( ) kesme simgesi kaçış (escape, \) karekteri kullanmaya gerek bırakmaz. Oysa, bazı dillerde ( ) karekterini yazmak için (\ ) biçiminde kaçış karekterini kesme simgesinin önüne koymak gerekir. Python da string için tek ve çift kesme karekterlerinin kullanılabiliyor oluşu, metin yazmayı kolaylaştırır. Unutmayalım ki, Python da string veri tipi çok kullanılır. Bir alıntı yaparken tek ve çift tırnak karekterleri ayrı işlevler için kullanılabilir. Betik 1.5. 1 >>> Yunus der ki " Beğler azdı yolundan, bilmez yoksul halinden " Yunus der ki " Beğler azdı yolundan, bilmez yoksul halinden " 3 >>> " Yunus der ki Beğler azdı yolundan, bilmez yoksul halinden " 5 " Yunus der ki Beğler azdı yolundan, bilmez yoksul halinden " 1.3.1 \n operatörü Bir çok dilde olduğu gibi, Pythonda da satırbaşı (newline) eylemi \n operatörü ile yapılır. Betik 1.6. 1 >>> s = " Ala gözlerini sevdiğim dilber \ ngöster cemalini görmeye geldim \n- Karacaoğlan -" >>> print ( s) 3 Ala gözlerini sevdiğim dilber Göster cemalini görmeye geldim 5 - Karacaoğlan - 1.3.2 Stringleri Birleştirme İki metni (string) birleştirmek için Python da farklı yöntemler izlenebilir. Bunlardan bazılarını şimdi ele alabiliriz. + operatörü: İki stringi birleştirmek (concatenate) için (+) operatörü kullanılabilir. Birleşen stringlerin arasına boşluk koymak için " " boş string konulabilir. Örneğin,

1.3 Python da String Bildirimi 5 1 >>> a = " Bilmek istersen seni " >>> b = Sen seni bil sen seni 3 >>> a + " " + b Bilmek istersen seni Sen seni bil sen seni 5 - Hacı Bayram Veli - olur. %s operatörü: Betik 1.7. 1 >>> str1 = " Python " >>> str2 = Programlama Dili string değişkenlerinin bildirimi yapılsın. String biçemleme operatörü (%s) ile iki stringi birleştirebiliriz. "%s %s" % (str1, str2) deyiminin çıktısı şudur: /** 2 Python Programlama Dili */ Bir stringe %s operatörü ile başka bir string ekleyebiliriz. "Python %s" % ("nesne tabanlı bir dildir.") deyiminin çıktısı şudur: 1 /** 3 */ Python nesne tabanlı bir dildir. print() metodu: Print() metodu iki stringi birleştirip yazar. 1 /** >>> print (str1, str2 ) 3 Python Programlama Dili */ liste yöntemi: stringler bir liste biçimine konulabilir /** 2 >>> m1 = " Aşam dedim," >>> m2 = " karlı dağlar başından " 4 >>> m3 = "- Karacaoğlan -" >>> listem = [m1,m2,m3] 6 >>> listem [ Aşam dedim,, karlı dağlar başından, - Karacaoğlan - ] 8 */

6 String 1.4 Altstring 1.4.1 Python da Altstring İşlemleri Python da str (string) tipi öz olarak bir lst (liste) tipidir. lst veri tipi başka dillerdeki array yapısına benzer işlevlere sahiptir; ama lst, array kavramından daha geneldir. Çünkü, lst nin öğeleri aynı veri tipinden olmayabilir. Bir string içinde yer alan karekterler bir karekter dizisi oluşturur. Bunu bir lst yapısı olarak görürsek, stringin ilk karekteri 0-ıncı öğe, ikinci karekteri 1-inci öğe,... vb. dir. Başka bir deyişle, python lst in öğelerini saymaya 0 dan başlar. n tane öğesi olan bir lst in son öğesi (n-1)-inci öğedir. lst in öğelerinin sıra numarası, array yapısında olduğu gibi ([ ]) köşeli parantez içine yazılır. Örneğin, Betik 1.8. a = " Bilmek istersen seni " 2 b = " Sen seni bil sen seni " stringinleri verilsin. İşlemlerde yazma kolaylığı için stringlere a ve b gibi kısa adlar verdik. Ancak, uzun programlarda böyle kısa adlar yerine, değişken ve metotlara işlevlerini çağrıştıracak uzun adlar verilmelidir. type(), len(), a[0], a[3], a[19] deyimlerine python aşağıdaki yanıtları verecektir. Betik 1.9. >>> a = " Bilmek istersen seni " 2 >>> type ( a) <class str > 4 >>> len (a) 20 6 >>> a [0] B 8 >>> a [3] m 10 >>> a [19] i x bir değişken ise type(x) metodu x in veri tipini, len(x) metodu x listesinin uzunluğunu verir. a stringinin ilk karekteri a[0]== B, dördüncü karekteri a[3]== m,..., son karekteri ise a[19]== i olur.

1.4 Altstring 7 1.4.2 String İçinden Karekter Seçme Genel olarak, bir met stringinden indisi r olan karekteri seçmek için Betik 1.10. 1 met [r] deyimini kullanırız. 1.4.3 Altstring Seçme Dilimleme Bir stringin bir altstringini seçmek için [alt_indis : üst_indis] operatörünü kullanırız. Operatör alt indisi dahil eder, üst ündisi hariç tutar. Bu işlem, stringden bir dilim seçme gibidir. Örneğin, a[7:15] deyimi a stringinin 7 indisli öğesinden başlar 17 indisli öğesine kadar olan altstringi seçer. 7 dahil, 15 hariçtir. 1 >>> a [7:15] istersen Stringin başından başlayarak verilen n indisine kadar olan altstringi seçmek için [ :n] operatörü kullanılır. n indisli karekter seçime dahil olmaz. Örneğin, >>> a[ :6] 2 Bilmek olur. Stringin verilen m indisinden başlayarak stringin sonuna kadar olan altstringi seçmek için [m: ] operatörü kullanılır. m indisli karekter seçime dahil olur. Örneğin, >>> a [7: ] 2 istersen seni olur. Bazen bir stringi bir kaç kez yazmak isteyebiliriz. O zaman (*) operatörünü kullanabiliriz. Örneğin, >>> s = " Python " 2 >>> s * 3 PythonPythonPython

8 String olur. Bir karekterin bir string içinde olup olmadığını anlamak için (in) operatörünü kullanırız: 1 >>> h in " Python " True 3 ya da 5 >>> s = " Python " >>> t in s 7 True olur. Bir karekterin bir string içinde olup olmadığını anlamak için (in) operatörünün olumsuzu olan (not in) operatörünü de kullanabiliriz. Ancak bunu kullandığımızda True değerini alırsak, karekterin string içinde olmadığı anlamını çıkarmalıyız: 1 >>> d not in " Python " True 3 >>> t not in " Python " 5 False olur. Stringi belli bir yerden bölüp, bölünen kısmı yeni satıra yazdırmak için (\n) operatörünü kullanırız. 1 >>> s = " Ankara \ n başkenttir " >>> print ( s) 3 Ankara 5 başkenttir olur. 1.5 Python da String Operatörleri Buraya kadar incelediğimiz string operatörlerini bir tablo biçiminde görmek, onları anımsamamıza yardım edebilir. Örnekler 1 >>> str1 [:4] Uzun

1.6 Büyük-küçük Harfe Dönüştürme 9 Tablo 1.1: Python da String Operatörleri Operatör Açıklama + iki metni birleştirir * Solundaki metni tekrarlatır [i] stringden indisi i olan karekteri seçer [:] dilimlenen altstringi seçer) in üyelik not in in operatörünün olumsuzu \n satırbaşı yap % biçemleme (String Biçemleme ye bkz.) str1[ :4] deyimi str1 stringi nin başından başlayarak indisi 4 olan öğesine kadar olan altstringini verir. 4 indisli olan beşinci öğe hariçtir. >>> print ( str1 [5: ]) 2 ince bir yoldayım str1[5:] deyimi str1 stringi nin indisi 5 olan öğesinden başlar sonuna kadar olan altstringini verir. 5 indisli olan dördüncü öğe dahildir. >>> print ( str1 [ :4] + str1 [4: ]) 2 Uzun ince bir yoldayım örneği, str1 den seçilen iki alt stringi (+) operatörü ile birleştiriyor. >>> str1 [ -6] 2 d örneği, str1 stringinin sondan 6-ıncı karekterini seçer. >>> print ( str1 [ -13: ]) 2 bir yoldayım örneği, str1 stringinin sondan 13-üncü karekterinden sonrakileri seçer. 1.6 Büyük-küçük Harfe Dönüştürme Python da büyük-küçük harf dönüşümü yapan üç metot vardır. lower() metodu string küçük harfe dönüştürür. upper() metodu stringi büyük harfe dönüştürür.

10 String title() metodu, string içindeki her kelimenin ilk harfini büyük harfe dönüştürür. >>> stra = " Merhaba Python " 2 >>> stra. lower () merhaba python 4 >>> stra. upper () MERHABA PYTHON 6 >>> stra. title () Merhaba Python 1.6.1 Yerine Koyma (replace) Bir string yerine başkasını koymak için replace() metodu kullanılır. 1 /** >>> s = " kartal kartal havada " 3 >>> s. replace (" kartal ", " leylek ") leylek leylek havada 5 */ 1.6.2 split() metodu Bir ayraç ile bitişik yazılmış bir stringi ayraçlardan ayrılan altstringlerin bir listesi biçimine koyar. Uygulamada (,), (;) gibi karakterlerle birleştirilmiş metinleri bileşenleine ayırmak için yararlı bir metottur. Örneğin, 1 /** >>> kim = " Yasemin,23, Ankara, Üniversite " 3 >>> kim. split (, ) [ Yasemin, 23, Ankara, Üniversite ] 5 */ 1.6.3 join() metodu join() metodu bir string listesini, verilen ayraç ile birleştirilmiş bir string biçimine koyar. Başka bir deyişle split() metodunun tersini yapar. Örneğin, 1 /** >>> clist = [" Ece ", "20", " Mersin ", "Dr."] 3 >>> ;. join ( clist ) Ece ;20; Mersin ;Dr. 5 */

1.7 String Biçemleme Operatörleri 11 1.6.4 find() metodu join() metodu bir string içinde aranan bir alt metnin başladığı yerin indisini verir. Örneğin, 1 /** >>> s = " Senden başka ağaç olsaydı " 3 >>> s. find (" ağaç ") 13 5 */ 1.6.5 isalpha(), isdigit(), isspace() metotları Bir stringin harflerden mi, sayılardan mı yoksa boşluklardan mı oluştuğunu denetleyen metotlardır. Örneğin, 1 /** >>> m = " Ankara " 3 >>> m. isalpha () True 5 >>> m. isdigit () 7 False 9 >>> m. isspace () False 11 */ 1.7 String Biçemleme Operatörleri Bilgisayara giriş ve çıkışlar, bizim anlayacağımız biçemlerdedir; yani string tipindendir. Aslında bütün karekterler birer resimdir. Bilgisayara veri girerken bu resimleri (karekterleri) kullanırız. Onların bileşimleri birer stringdir. Öyleyse bilgisayara girdiğimiz her şey string tipindendir. Onlar içeride bilgisayarın anladığı makina diline dönüşür. Bilgisayar çıktıları için de aynı şey geçerlidir. İçeride makina dili ile yazılan veriler dışarıya (output) bizim anlayacağımız şekillere dönüşmüş olarak gelir. Başka bir deyişle, içeride makina diliyle yazılan veriler ekran, printer vb. gibi bir çıkış ortamına giderken string tipine dönüşür. Ayrıca, stringleri veri tiplerine ayırmak ve gerekiyorsa her birine özel biçemler vermek mümkündür. Örneğin çıkan veriyi metin olarak yazmak, sayı olarak yazmak, sayıları binliklerine ayırmak, kesir hanelerini azaltıp çoğaltmak, çıktıyı sağa ya da sola yanaşık yazmak

12 String vb. gibi eylemler çıktının biçemlenmesi eylemleridir. Bunları yapmak, çıktının kolay algılanmasını sağlar. Bütün çıktılar string olduğuna göre, string biçemleyen operatörlerin olması gerekir. String biçemleme operatörleri bir çok dilde ortaktır. Python da kullanılan string biçemleme operatörleri aşağıdaki tabloda listelenmiştir. Tablo 1.2: Python String Biçemleme Operatörleri Operatör Açıklama %c Çıktıyı karekter olarak verir %s Çıktıyı string olarak verir %i Çıktıyı onlu sistemde işaretli tamsayı (decimal) olarak verir %d Çıktıyı onlu sistemde işaretli tamsayı (decimal) olarak verir %u Çıktıyı onlu sistemde işaretsiz tamsayı (decimal) olarak verir %o Çıktıyı oktal (8 tabanlı) sistemde verir %x Çıktıyı hexadecimal (16 tabanlı) sistemde verir %X Çıktıyı hexadecimal (16 tabanlı) sistemde büyük harfle verir %e Çıktıyı üstel biçemde verir (e üstü) %E Çıktıyı üstel biçemde verir (E üstü) %f Çıktıyı float sayı olarak verir %g Çıktıyı %f ya da %e biçiminde verir (kısa olan seçilir) %G Çıktıyı %f ya da %E biçiminde verir (kısa olan seçilir) 1.7.1 Program İçinde Açıklamalar Program yazılırken değişkenlerin ve metotların ne iş yaptıklarını açıklamak yararlıdır. İlerdeki zamanlarda programda güncelleme ya da değişiklik yapılacağı zaman bu açıklama satırları çok işe yarar. O nedenle, yazılım şirketleri büyük programlar için geniş açıklamalar isterler. Böylece, programın ilerideki zamanlarda kolayca güncellenebilmesini güvenceye almış olurlar. Açıklamalar tek satır ya da çok satırlı olabilir. Bazı dillerde tek satırlı açıklamalar (//) simgeleri ile yapılır. (//) simgelerinden sonra satır sonuna kadar yazılanları derleyiciler görmez. Python da tek satırlık açıklamalar için (#) simgesi kullanılır. Örneğin, 1 # s değişkeni personelin sicil numarasını tutacaktır s = 123

1.7 String Biçemleme Operatörleri 13 ya da aynı işi yapmak üzere s = 123 # s değişkeni personelin sicil numarasıdır yazabiliriz. Bu durumda, s = 123 yorumlanacak, ama (#) simgesinden başlayarak satır sonuna kadar yazılanlar yorumlanmayacaktır. Bazen program içinde yapılan açıklamalar bir satıra sığmayabilir. O zaman çok satırlı açıklama yapılabilir. C, java ve başka bazı dillerde çok satırlı açıklamalar *... * içine yazılır. java da dökümana girmesi istenen açıklamalar /**... */ içine yazılır. Python da çok satırlı açıklama öz olarak yoktur. Açıklama satırlarının hepsinin önüne (#) simgesi konulur. Böyle olması belki programdaki açıklamaların kolay algılanmasını sağlıyor. Ancak ardışık üç tane tek ya da ardışık üç tane çift kesme simgeleri arasında yer alan satırları Python derleyicisi yorumlamaz. Dolayısıyla onlar çok satırlı açıklama olarak kullanılabilirler. Örneğin, 1 Bu pythonda üç satırlı bir açıklamadır ya da """ Bu metin python da 2 iki satırlı bir açıklamadır """ Ayrıca bu biçimde yazılan açıklamalar döküman olarak da yazdırılabilir. Bu durumuyla python daki üç tırnak, java daki **... * açıklamasına benzer. Strinleri birleştirmek için kullandığımız + operatörü sayılarda kullandığımız + operatöründen farklıdır. Onun adaşlanmışıdır (overloaded). (Bu konuyu Metotları incelerken ele alacağız.) Aşağıdaki betik, stringleri (+) operatörü ile birleştiriyor. Betik 1.11. 1 >>> str1 = " Neler yapmadık şu vatan için!" >>> str2 = " Kimimiz öldük," 3 >>> str3 = " Kimimiz nutuk söyledik." >>> 5 >>> str4 = str1 + \ n + str2 + \ n + str3 >>> print ( str4 ) 7 Neler yapmadık şu vatan için! Kimimiz öldük, 9 Kimimiz nutuk söyledik.

14 String Kural 1.1. Stringlere sayısal işlemlerde kullanılan çıkarma, çarpma ve bölme işlemleri uygulanamaz. Sözkonusu işlemlerin uygulanamayacağını aşağıdaki örneklerden görebiliriz. Her işlem için python yorumlayıcısının verdiği hata uyarısına dikkat ediniz. Betik 1.12. 1 >>> str1 - str2 TypeError : unsupported operand type ( s) for -: str and str 3 >>> str1 * str2 5 TypeError : can t multiply sequence by non - int of type str 7 >>> str1 / str2 TypeError : unsupported operand type ( s) for /: str and str Kural 1.2. Stringlere sayı eklenemez, çıkarılamaz. Stringler sayılara bölünemez. Sözkonusu işlemlerin uygulanamayacağını aşağıdaki örneklerden görebiliriz. Her işlem için python yorumlayıcısının verdiği hata uyarısına dikkat ediniz. Betik 1.13. >>> str1 + 123 2 TypeError : Can t convert int object to str implicitly 4 >>> str1-123 TypeError : unsupported operand type ( s) for -: str and int 6 >>> str1 / 2 8 TypeError : unsupported operand type ( s) for /: str and int Kural 1.3. Stringlerle sayılar çarpılabilir, ama bu işlem sayılardaki çarpma işlemi değildir; onun adaşlanmışıdır. Sözkonusu işlemleri örneklerden görebiliriz. Betik 1.14.

1.7 String Biçemleme Operatörleri 15 >>> 2 * str2 2 Kimimiz öldük, Kimimiz öldük, 4 >>> str2 * 2 Kimimiz öldük, Kimimiz öldük,

16 String

Kaynakça [1] python.org. docs.python.org/3/, 2013.

Dizin \n, 4 altstring, 6 altstring seçme, 7 biçemleme, 11 dönüştürme, 9 dilimleme, 7 dizim, 1 find(), 11 formatting, 11 join(), 10 karekter, 2 karekter seçme, 7 metin, 1 split(), 10 string, 1 string biçemleme, 11 string formatting, 11 string operatörleri, 8 strinkleri birleştirme, 4