NASIL:Python ile programlama
PardusWiki, özgür ansiklopedi
[değiştir] Önbilgi
[değiştir] Python nedir?
[değiştir] Özellikleri & Avantajları
[değiştir] Python'u nereden bulabilirim?
[değiştir] Veri Tipleri
[değiştir] Integers (Sayısal veriler)
Sayısal ifadeleri tutmak için kullanılır. en basit hali ile bir değişkene sayısal veri atamak
Değişken = Sayı
şeklinde olur. Python verdiğiniz sayının cinsini otomatik olarak algılayıp değişken tipinizi otomatik olarak belirler. Eğer sayısal veri tipi el ile ayarlanmak isteniyorsa ilgili sayısal sınıf ile birlikte çağırılır.
| Atama şekli | Anlamı |
|---|---|
| sayi = int(13) | sayi = integer tipinde 13 sayısı |
| sayi = float(13) | sayi = float tipinde 13 sayısı |
| sayi = long(13) | sayi = long integer tipinde 13 sayısı |
| sayi = octal(13) | sayi = octal (8'lik sayı sisteminde) integer tipinde 13 sayısı |
| sayi = hex(13) | sayi = hexadecimal (16'lık sayı sisteminde) tipinde 13 sayısı |
[değiştir] Strings (Alfanümerik veriler)
Bir karakter katarı saklamak için kullanılır. Python da string'ler bir yada birden fazla satır karakter katarı saklayabilirler. En basit hali ile bir değişkene karakter katarı atamak :
Değişken = 'değişkene atanacak metin'
şeklinde olur. Bu atama sırasında " (çift tırnak) yada ' (tek tırnak) işaretlerinden biri kullanılır. Tek tırnak işareti kullanıldığında string olduğu gibi alınır üzerinde hiçbir değişiklik yapılmaz çift tırnak işaretine nazaran daha hızlı çalışır (günümüz bilgisayarlarında bu hız farkı anlaşılırmı bilmiyorum). Eğer string belirtilirken çift tırnak kullanılırsa o string içerisinde çeşitli özel karakterler (%s , %d vs.) aranır , varsa değiştirilir. Bu konuyu şimdilik anlamanıza gerek yok sadece gerekli zamanlar hariç tek tırnak işareti kullanmaya özen göstermeniz gerektiğini bilin yeter.
Eğer girilecek metin çok uzunsa \ (backslash) karakteri metni bölüp alt alta yazmak için kullanılabilir.
Değişken = 'Bu metin çok uzun olduğu için \ backslash karakteri ile bölünüp alt alta yazılmış\ böylelikle kod içerisinde çirkin, upuzun bir satır\ oluşmasına engel olunmuştur'
Bu uzun satır sorununa alternatif bir çözüm ise string'i """ (üç tırnak) işareti altına almaktır.
Değişken = '''Bu metin tıpkı backslash ekleme yönteminde olduğu gibi alt alta yazılmış fakat üç tırnak işaretleri arasına alınıp satır sonlarında \ işareti kullanılmamış.'''
[değiştir] String Metodları
metin = 'bu bir string'
[değiştir] capitalize
- Syntax
- StringObject.capitalize()
- Açıklama
- İlk harfini büyük yapar.
- Örnek
>>> print metin.capitalize() >>> Bu bir string
[değiştir] center
- Syntax
- StringObject.center(genişlik,doldurma karakteri)
- Açıklama
- Metni , doldurma karakterini kullanarak belirlenen genişliğe kadar genişletir ve yazıyı ortalar.
- Örnek
>>> print metin.center(40,'-') >>> -------------bu bir string--------------
[değiştir] count
Syntax : StringObject.count() Açıklama : String içerisinde ilk ve sonunu karakterler arasında alt metinin kaç tane geçtiğini döndürür. Buradaki ilk ve son parametreleri isteğe bağlıdır. Örnek:
>>> print metin.count('i')
>>> 2
[değiştir] decode
- Syntax
- StringObject.decode(kodlama)
- Açıklama
- String'i verilen kodlamayı kullanarak deşifre eder.
- Örnek
- Yok.
[değiştir] encode
- Syntax
- StringObject.encode(kodlama)
- Açıklama
- String'i verilen kodlamayı kullanarak şifeler.
- Örnek
- Yok.
[değiştir] endswith
- Syntax
- StringObject.endswith(Son_ek[Başlangıç,Bitiş])
- Açıklama
- Eğer metin Son_ek ile bitiyorsa True bitmiyorsa False döndürür. Başlangıç ve Bitiş parametreleri keyfi olarak testin başlangıç ve bitiş noktalarını belirtmek için verilebilir.
- Örnek
>>> print metin.endswith('ng')
>>> True
>>> print metin.endswith('ab')
>>> False
[değiştir] expandtabs
- Syntax
- StringObject.expandtabs([tab_uzunluğu])
- Açıklama
- StringObject içerisinde bulunan tab karakterlerini aralık karakterlerine dönüştürür. Her tabın kaç aralık karakteri edeceği belirtilebilir.
- Örnek
>>> print metin bu bir string >>> print metin.expandtabs(15) bu bir string
[değiştir] find
- Syntax
- StringObject.find(alt_metin[,başlangıç,bitiş])
- Açıklama
- Eğer alt_metin StringObject içerisinde bulunursa pozisyonunu , bulunamazsa -1 değerini döndürür.
- Örnek
>>> print metin.find('ir')
>>> 4
[değiştir] index
- Syntax
- StringObject.index(alt_metin[,başlangıç,bitiş])
- Açıklama
- find metodunun aynısıdır fakat bulunamazsa -1 değerini döndürmez value error verir.
[değiştir] isalnum
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] isalpha
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] isdigit
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] islower
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] isspace
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] istitle
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] isupper
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] join
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] ljust
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] lower
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] lstrip
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] replace
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] rfind
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] rindex
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] rjust
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] rsplit
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] rstrip
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] split
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] splitlines
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] startswith
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] strip
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] swapcase
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] title
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] translate
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] upper
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] zfill
- Syntax
- Açıklama
- Örnek
>>> >>>
[değiştir] Containers (Taşıyıcı veri tipleri)
[değiştir] List (Liste veri tipi)
Listeler ardaşık veri listeleridirler. Liste elemanları köşeli parantez içine alınır ve , (virgül işareti) ile ayrılırlar. elemanlar herhangi bir veri tipinde olabilir.
>>> meyveler = ['elma' , 'armut' , 'ayva'] >>> sayilar = [1,3,5,10] >>> karisik = ['bir string',4,2]
Liste elemanlarına meyveler[kaçıncı eleman] şeklinde ulaşılabilir. Yukarıdaki meyveler listesindeki armut elemanını yazdırmak için.
>>> print meyveler[1] >>> armut
Şeklinde çağırılabilir. Çeşitli şekillerde içeriği değiştirilebilir. Örneğin listedeki 2. elemanı limon olarak değiştirmek için.
>>> meyveler[2] = 'limon' >>> print meyveler >>> ['elma','armut','limon']
| Not: Python saymaya 0 dan saymaya başlar. Bu sebepten yukarıda armut 2. değil 1. eleman olarak çağırıldı. |
Listeler üzerinde değişiklik yapmak la ilgili diğer fonksiyonlar
[değiştir] Liste Metodları
[değiştir] append
- Syntax
- ListObject.append(nesne)
- Açıklama
- Liste sonuna bir nesne ekler, nesne string yada integer olabilir.
- Örnek
>>> meyveler.append('karpuz')
>>> print meyveler
['elma','armut','limon','karpuz']
[değiştir] count
- Syntax
- ListObject.count(nesne)
- Açıklama
- Verilen nesnenin listede kaç adet olduğunu döndürür , nesne string yada integer olabilir.
- Örnek
>>> print meyveler.count('karpuz')
1
[değiştir] extend
- Syntax
- ListObject.extend(taşıyıcı)
- Açıklama
- Listeyi verilen taşıyıcıdaki elemanlarla genişletir, taşıyıcı tüp yada liste olabilir.
- Örnek
>>> eklenecekler = ('portakal','mandalina','muz')
>>> meyveler.extend(eklenecekler)
>>> print meyveler
['elma', 'armut', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'muz']
[değiştir] index
- Syntax
- ListObject.index(nesne)
- Açıklama
- Nesnenin liste içerisinde kaçıncı eleman olduğunu döndürür. eğer verilen eleman listede yoksa hata mesajı döndürür. nesne string yada integer olabilir.
- Örnek
>>> print meyveler.index('erik')
>>> 2
[değiştir] insert
- Syntax
- ListObject.insert(sıra,nesne)
- Açıklama
- Listenin belirlenen sırasına nesneyi ekler. Verilen sıradan sonraki elemanlar ileri ittirilir. Nesne integer yada string olabilir.
- Örnek
>>> print meyveler ['elma', 'armut', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'muz'] >>> meyveler.insert(2,'kiraz') >>> print meyveler ['elma', 'armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'muz']
[değiştir] pop
- Syntax
- ListObject.pop()
- Açıklama
- Listenin sonundan bir eleman döndürür ve o elemanı siler. Bu özellik append() ile birlikte kullanıldığında listelerin stack gibi kullanılabilmesini sağlar.
- Örnek
>>> sonelelman = meyveler.pop() >>> print soneleman muz >>> print meyveler ['elma', 'armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina']
gördüğünüz gibi soneleman değişkeni meyvelerin son elemanı olan muz oldu ve meyveler listesi bir eksildi.
[değiştir] remove
- Syntax
- ListObject.remove(eleman)
- Açıklama
- Listede verilen elemanı arar bulduğu ilk eşleşmeyi siler. Eğer verilen eleman listede yoksa hata döndürür.
- Örnek
>>>meyveler.append('elma')
>>> print meyveler
['elma', 'armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'elma']
>>> # şu anda listede 2 adet elma var
>>> meyveler.remove('elma')
>>> print meyveler
['armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina', 'elma']
>>> meyveler.remove('elma')
>>> print meyveler
['armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina']
[değiştir] reverse()
- Syntax
- ListObject.reverse()
- Açıklama
- Listedeki elemanların sırasını tersine çevirir.['armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina']
- Örnek
>>> print meyveler ['armut' ,'kiraz', 'erik', 'limon', 'karpuz', 'portakal', 'mandalina'] >>> meyveler.reverse() >>> print meyveler ['mandalina', 'portakal', 'karpuz', 'limon', 'erik', 'kiraz', 'armut']
[değiştir] Tube (Tüp veri tipi)
Tüp veri tipi listeler ile aynı mantıkta çalışır, tek farkı sadece bir kez belirlenir ve daha sonra bu listeye ekleme çıkarma, üzerinde oynama yapılamaz. Eğer gerekli olan listenin içeriğini değiştirmemize gerek yoksa tüp veri tipi kullanırız. Listelere nazaran daha performanslı çalışırlar.
Bir değişkeni tüp olarak belirlemek için listelerle aynı yöntem kullanılır tek fark köşeli parantez yerine normal parantez kullanılmasıdır.
>>> Tup = ('elma' , 'armut' , 'ayva')
>>> print Tup[1]
armut
[değiştir] Dictionary (Sözlük veri tipi)
Sözlük veri tipi sözlük gibi çalışır. Çeşitli anahtarlara çeşitli değerler atanır ve o anahtarlarla çağrılır. Bir sözlük oluşturulurken anahtar ve değerler : (iki nokta üst üste) işaretiyle ayrılır. Bu anahtar:veri ikilemeleri de birbirlerinden , (virgül) işareti ile ayrılırlar. Bütün grup memeli parantez (:S neydi bunun adı?) içine alınır. Ahmet ve Mehmet anahtarlarına sahip telefon rehberi aşağıdaki gibi ifade edilir.
>>> telefonlar = {'Ahmet':'423 42 12','Mehmet':'123 43 47'}
Bu sözlüklerden anahtarlarla bir telefon numarası almak için telefonlar[anahtar] şeklinde çağırılır.
>>> print telefonlar['Ahmet'] >>> 423 42 12
Eğer verilen anahtar bulunamaz ise Python hata verir.
>>> telefonlar['Suat'] Traceback (most recent call last): File "<stdin>", line 1, in ? KeyError: 'Suat'
[değiştir] Kontrol Yapıları
[değiştir] Karar Mekanizmaları
[değiştir] if..elif..else..
if önerme : ise birşeyler yap elif başka bir önerme: ise başka birşeyler yap. else: hiçbiri değilse bambaşka birşeyler yap.
Buradaki durum sonucu True yada False olarak dönen herhangi bir önerme, olabilir. Sonucu True olarak döner ise if den sonraki komutlar gurubu değil ise else: den sonraki komutlar grubu işlenir.
Not:
|
Karşılaştırma yapan operatörler :
| Operatör | Anlamı | Kullanım Örneği | Neleri karşılaştırabilir |
|---|---|---|---|
| < | küçüktür | 5 < 4 | sayısal verileri. |
| > | büyüktür | 5 > 4 | sayısal verileri. |
| <= | küçük ya da eşittir | 5 < 4 | sayısal verileri. |
| >= | büyük ya da eşittir | 5 > 4 | sayısal verileri. |
| == | eşittir | 5 == 4 , 'elma'=='armut' | sayısal ve sözel verileri. |
| != | eşit değildir | 5!=4 , 'elma'!='armut' | sayısal ve sözel verileri. |
| in | içinde vardır | 'elma' in meyveler | sayısal ve sözel verileri. |
| And | ve.. | (5>4) And (elma in meyveler) | önermeleri. |
| Or | veya.. | (5>4) Or (elma in meyveler) | önermeleri. |
| Not | değil.. | (5>4) Not (elma in meyveler) | önermeleri. (?? FIXME : burada bir yanlışlık var) |
Daha somut bir örnek vermek gerekirse..
ifdene.py
sayimiz = 7 if sayimiz > 5: print "sayımız 5 den büyük bir sayı." elif sayimiz < 5: print "sayımız 5 den küçük bir sayı. else: print "sayımız 5" # 5 den büyük yada küçük değilse kendisidir ;)
[değiştir] if..elif..else
[değiştir] Döngüler
[değiştir] for..in..:
[değiştir] while
--Mcbayrak 13:23, 20 Temmuz 2008 (EEST)


